home *** CD-ROM | disk | FTP | other *** search
- /*
- * F1move transforms the cube in response to a clockwise
- * turn of the Front face. F3move represents a counter-
- * clockwise turn. Similarly for the other faces.
- */
- #define F1move \
- Rot4(ULF_U,DLF_L,DRF_D,URF_R); \
- Rot4(ULF_L,DLF_D,DRF_R,URF_U); \
- Rot4(ULF_F,DLF_F,DRF_F,URF_F); \
- Rot4(UF_U,LF_L,DF_D,RF_R); \
- Rot4(UF_F,LF_F,DF_F,RF_F);
-
- #define F3move \
- Rot4(ULF_U,URF_R,DRF_D,DLF_L); \
- Rot4(ULF_L,URF_U,DRF_R,DLF_D); \
- Rot4(ULF_F,URF_F,DRF_F,DLF_F); \
- Rot4(UF_U,RF_R,DF_D,LF_L); \
- Rot4(UF_F,RF_F,DF_F,LF_F);
-
- #define L1move \
- Rot4(ULF_U,ULB_B,DLB_D,DLF_F); \
- Rot4(ULF_L,ULB_L,DLB_L,DLF_L); \
- Rot4(ULF_F,ULB_U,DLB_B,DLF_D); \
- Rot4(UL_U,LB_B,DL_D,LF_F); \
- Rot4(UL_L,LB_L,DL_L,LF_L);
-
- #define L3move \
- Rot4(ULF_U,DLF_F,DLB_D,ULB_B); \
- Rot4(ULF_L,DLF_L,DLB_L,ULB_L); \
- Rot4(ULF_F,DLF_D,DLB_B,ULB_U); \
- Rot4(UL_U,LF_F,DL_D,LB_B); \
- Rot4(UL_L,LF_L,DL_L,LB_L);
-
- #define R1move \
- Rot4(URF_U,DRF_F,DRB_D,URB_B); \
- Rot4(URF_R,DRF_R,DRB_R,URB_R); \
- Rot4(URF_F,DRF_D,DRB_B,URB_U); \
- Rot4(UR_U,RF_F,DR_D,RB_B); \
- Rot4(UR_R,RF_R,DR_R,RB_R);
-
- #define R3move \
- Rot4(URF_U,URB_B,DRB_D,DRF_F); \
- Rot4(URF_R,URB_R,DRB_R,DRF_R); \
- Rot4(URF_F,URB_U,DRB_B,DRF_D); \
- Rot4(UR_U,RB_B,DR_D,RF_F); \
- Rot4(UR_R,RB_R,DR_R,RF_R);
-
- #define B1move \
- Rot4(ULB_U,URB_R,DRB_D,DLB_L); \
- Rot4(ULB_L,URB_U,DRB_R,DLB_D); \
- Rot4(ULB_B,URB_B,DRB_B,DLB_B); \
- Rot4(UB_U,RB_R,DB_D,LB_L); \
- Rot4(UB_B,RB_B,DB_B,LB_B);
-
- #define B3move \
- Rot4(ULB_U,DLB_L,DRB_D,URB_R); \
- Rot4(ULB_L,DLB_D,DRB_R,URB_U); \
- Rot4(ULB_B,DLB_B,DRB_B,URB_B); \
- Rot4(UB_U,LB_L,DB_D,RB_R); \
- Rot4(UB_B,LB_B,DB_B,RB_B);
-
- #define U1move \
- Rot4(ULF_U,URF_U,URB_U,ULB_U); \
- Rot4(ULF_L,URF_F,URB_R,ULB_B); \
- Rot4(ULF_F,URF_R,URB_B,ULB_L); \
- Rot4(UL_U,UF_U,UR_U,UB_U); \
- Rot4(UL_L,UF_F,UR_R,UB_B);
-
- #define U3move \
- Rot4(ULF_U,ULB_U,URB_U,URF_U); \
- Rot4(ULF_L,ULB_B,URB_R,URF_F); \
- Rot4(ULF_F,ULB_L,URB_B,URF_R); \
- Rot4(UL_U,UB_U,UR_U,UF_U); \
- Rot4(UL_L,UB_B,UR_R,UF_F);
-
- #define D1move \
- Rot4(DLF_D,DLB_D,DRB_D,DRF_D); \
- Rot4(DLF_L,DLB_B,DRB_R,DRF_F); \
- Rot4(DLF_F,DLB_L,DRB_B,DRF_R); \
- Rot4(DL_D,DB_D,DR_D,DF_D); \
- Rot4(DL_L,DB_B,DR_R,DF_F);
-
- #define D3move \
- Rot4(DLF_D,DRF_D,DRB_D,DLB_D); \
- Rot4(DLF_L,DRF_F,DRB_R,DLB_B); \
- Rot4(DLF_F,DRF_R,DRB_B,DLB_L); \
- Rot4(DL_D,DF_D,DR_D,DB_D); \
- Rot4(DL_L,DF_F,DR_R,DB_B);
-
- /*
- * This file contains the permutations used to transform
- * the cube during the calculation of the solution during
- * the first call to SolveRubiksCube.
- */
- #define F1 F1move; M(F);
- #define F3 F3move; M(f);
- #define L1 L1move; M(L);
- #define L3 L3move; M(l);
- #define R1 R1move; M(R);
- #define R3 R3move; M(r);
- #define B1 B1move; M(B);
- #define B3 B3move; M(b);
- #define U1 U1move; M(U);
- #define U3 U3move; M(u);
- #define D1 D1move; M(D);
- #define D3 D3move; M(d);
-
- #define F2 \
- Rot2(ULF_U,DRF_D); Rot2(ULF_L,DRF_R); \
- Rot2(ULF_F,DRF_F); Rot2(DLF_D,URF_U); \
- Rot2(DLF_L,URF_R); Rot2(DLF_F,URF_F); \
- Rot2(UF_U,DF_D); Rot2(UF_F,DF_F); \
- Rot2(LF_L,RF_R); Rot2(LF_F,RF_F); \
- M(F);M(F);
-
- #define L2 \
- Rot2(ULF_U,DLB_D); Rot2(ULF_L,DLB_L); \
- Rot2(ULF_F,DLB_B); Rot2(DLF_D,ULB_U); \
- Rot2(DLF_L,ULB_L); Rot2(DLF_F,ULB_B); \
- Rot2(UL_U,DL_D); Rot2(UL_L,DL_L); \
- Rot2(LF_L,LB_L); Rot2(LF_F,LB_B); \
- M(L);M(L);
-
- #define R2 \
- Rot2(URF_U,DRB_D); Rot2(URF_R,DRB_R); \
- Rot2(URF_F,DRB_B); Rot2(DRF_D,URB_U); \
- Rot2(DRF_R,URB_R); Rot2(DRF_F,URB_B); \
- Rot2(UR_U,DR_D); Rot2(UR_R,DR_R); \
- Rot2(RF_R,RB_R); Rot2(RF_F,RB_B); \
- M(R);M(R);
-
- #define B2 \
- Rot2(ULB_U,DRB_D); Rot2(ULB_L,DRB_R); \
- Rot2(ULB_B,DRB_B); Rot2(DLB_D,URB_U); \
- Rot2(DLB_L,URB_R); Rot2(DLB_B,URB_B); \
- Rot2(UB_U,DB_D); Rot2(UB_B,DB_B); \
- Rot2(LB_L,RB_R); Rot2(LB_B,RB_B); \
- M(B);M(B);
-
- #define U2 \
- Rot2(ULF_U,URB_U); Rot2(ULF_L,URB_R); \
- Rot2(ULF_F,URB_B); Rot2(URF_U,ULB_U); \
- Rot2(URF_R,ULB_L); Rot2(URF_F,ULB_B); \
- Rot2(UL_U,UR_U); Rot2(UL_L,UR_R); \
- Rot2(UF_U,UB_U); Rot2(UF_F,UB_B); \
- M(U);M(U);
-
- #define D2 \
- Rot2(DLF_D,DRB_D); Rot2(DLF_L,DRB_R); \
- Rot2(DLF_F,DRB_B); Rot2(DRF_D,DLB_D); \
- Rot2(DRF_R,DLB_L); Rot2(DRF_F,DLB_B); \
- Rot2(DL_D,DR_D); Rot2(DL_L,DR_R); \
- Rot2(DF_D,DB_D); Rot2(DF_F,DB_B); \
- M(D);M(D);
-
- /* Upper layer transforms */
-
- /* R3;D1;R1; */
- #define R3D1R1 \
- Rot4(DLF_D,DLB_D,DRF_F,URF_F); \
- Rot4(DLF_L,DLB_B,DRF_R,URF_U); \
- Rot4(DLF_F,DLB_L,DRF_D,URF_R); \
- Rot4(RF_R,DF_F,DL_L,DB_B); \
- Rot4(RF_F,DF_D,DL_D,DB_D); \
- M(r);M(D);M(R);
-
- /* B3;D1;B1; */
- #define B3D1B1 \
- Rot4(DLF_D,DRB_R,URB_R,DRF_D); \
- Rot4(DLF_L,DRB_B,URB_U,DRF_F); \
- Rot4(DLF_F,DRB_D,URB_B,DRF_R); \
- Rot4(RB_R,DR_D,DF_D,DL_D); \
- Rot4(RB_B,DR_R,DF_F,DL_L); \
- M(b);M(D);M(B);
-
- /* L3;D1;L1; */
- #define L3D1L1 \
- Rot4(DRF_D,DLB_B,ULB_B,DRB_D); \
- Rot4(DRF_R,DLB_D,ULB_L,DRB_B); \
- Rot4(DRF_F,DLB_L,ULB_U,DRB_R); \
- Rot4(LB_L,DB_B,DR_R,DF_F); \
- Rot4(LB_B,DB_D,DR_D,DF_D); \
- M(l);M(D);M(L);
-
- /* R1;D1;R3; */
- #define R1D1R3 \
- Rot4(DLF_D,DLB_D,URB_B,DRB_B); \
- Rot4(DLF_L,DLB_B,URB_R,DRB_D); \
- Rot4(DLF_F,DLB_L,URB_U,DRB_R); \
- Rot4(RB_R,DF_F,DL_L,DB_B); \
- Rot4(RB_B,DF_D,DL_D,DB_D); \
- M(R);M(D);M(r);
-
- /* B3;D3;B1; */
- #define B3D3B1 \
- Rot4(DLF_D,DRF_D,URB_R,DRB_R); \
- Rot4(DLF_L,DRF_F,URB_U,DRB_B); \
- Rot4(DLF_F,DRF_R,URB_B,DRB_D); \
- Rot4(RB_R,DL_D,DF_D,DR_D); \
- Rot4(RB_B,DL_L,DF_F,DR_R); \
- M(b);M(d);M(B);
-
- /* B1;D1;B3; */
- #define B1D1B3 \
- Rot4(DLF_D,ULB_L,DLB_L,DRF_D); \
- Rot4(DLF_L,ULB_B,DLB_D,DRF_F); \
- Rot4(DLF_F,ULB_U,DLB_B,DRF_R); \
- Rot4(LB_L,DR_D,DF_D,DL_D); \
- Rot4(LB_B,DR_R,DF_F,DL_L); \
- M(B);M(D);M(b);
-
- /* L3;D3;L1; */
- #define L3D3L1 \
- Rot4(DRF_D,DRB_D,ULB_B,DLB_B); \
- Rot4(DRF_R,DRB_B,ULB_L,DLB_D); \
- Rot4(DRF_F,DRB_R,ULB_U,DLB_L); \
- Rot4(LB_L,DF_F,DR_R,DB_B); \
- Rot4(LB_B,DF_D,DR_D,DB_D); \
- M(l);M(d);M(L);
-
- /* L3;D1;L1;D2;L3;D3;L1; */
- #define L3D1L1D2L3D3L1 \
- Rot2(DLF_D,DRF_D); \
- Rot2(DLF_L,DRF_F); \
- Rot2(DLF_F,DRF_R); \
- Rot2(ULB_U,DLB_D); \
- Rot2(ULB_L,DLB_B); \
- Rot2(ULB_B,DLB_L); \
- Rot2(LB_L,DR_R); \
- Rot2(LB_B,DR_D); \
- Rot2(DL_D,DF_D); \
- Rot2(DL_L,DF_F); \
- M(l);M(D);M(L);M(D);M(D);M(l);M(d);M(L);
-
- /* L1;D1;L3; */
- #define L1D1L3 \
- Rot4(ULF_U,DLF_L,DRB_B,DRF_R); \
- Rot4(ULF_L,DLF_D,DRB_R,DRF_F); \
- Rot4(ULF_F,DLF_F,DRB_D,DRF_D); \
- Rot4(LF_L,DB_B,DR_R,DF_F); \
- Rot4(LF_F,DB_D,DR_D,DF_D); \
- M(L);M(D);M(l);
-
- /* F3;D3;F1; */
- #define F3D3F1 \
- Rot4(ULF_U,DLF_F,DRB_R,DLB_B); \
- Rot4(ULF_L,DLF_L,DRB_D,DLB_D); \
- Rot4(ULF_F,DLF_D,DRB_B,DLB_L); \
- Rot4(LF_L,DR_D,DB_D,DL_D); \
- Rot4(LF_F,DR_R,DB_B,DL_L); \
- M(f);M(d);M(F);
-
- /* F3;D1;F1;D2;F3;D3;F1; */
- #define F3D1F1D2F3D3F1 \
- Rot2(ULF_U,DLF_D); \
- Rot2(ULF_L,DLF_F); \
- Rot2(ULF_F,DLF_L); \
- Rot2(DRF_D,DRB_D); \
- Rot2(DRF_R,DRB_B); \
- Rot2(DRF_F,DRB_R); \
- Rot2(LF_L,DB_D); \
- Rot2(LF_F,DB_B); \
- Rot2(DR_D,DF_D); \
- Rot2(DR_R,DF_F); \
- M(f);M(D);M(F);M(D);M(D);M(f);M(d);M(F);
-
-
- /* B3;D1;B1;D2;B3;D3;B1; */
- #define B3D1B1D2B3D3B1 \
- Rot2(DLF_D,DLB_D); \
- Rot2(DLF_L,DLB_B); \
- Rot2(DLF_F,DLB_L); \
- Rot2(URB_U,DRB_D); \
- Rot2(URB_R,DRB_B); \
- Rot2(URB_B,DRB_R); \
- Rot2(RB_R,DF_D); \
- Rot2(RB_B,DF_F); \
- Rot2(DL_D,DB_D); \
- Rot2(DL_L,DB_B); \
- M(b);M(D);M(B);M(D);M(D);M(b);M(d);M(B);
-
- /* F3;D1;F1; */
- #define F3D1F1 \
- Rot4(ULF_U,DLB_B,DRB_R,DLF_F); \
- Rot4(ULF_L,DLB_D,DRB_D,DLF_L); \
- Rot4(ULF_F,DLB_L,DRB_B,DLF_D); \
- Rot4(LF_L,DL_D,DB_D,DR_D); \
- Rot4(LF_F,DL_L,DB_B,DR_R); \
- M(f);M(D);M(F);
-
- /* F1;D1;F3; */
- #define F1D1F3 \
- Rot4(URF_U,DRF_F,DLB_L,DRB_B); \
- Rot4(URF_R,DRF_R,DLB_D,DRB_D); \
- Rot4(URF_F,DRF_D,DLB_B,DRB_R); \
- Rot4(RF_R,DL_D,DB_D,DR_D); \
- Rot4(RF_F,DL_L,DB_B,DR_R); \
- M(F);M(D);M(f);
-
- /* R3;D3;R1; */
- #define R3D3R1 \
- Rot4(DLF_D,URF_F,DRF_F,DLB_D); \
- Rot4(DLF_L,URF_U,DRF_R,DLB_B); \
- Rot4(DLF_F,URF_R,DRF_D,DLB_L); \
- Rot4(RF_R,DB_B,DL_L,DF_F); \
- Rot4(RF_F,DB_D,DL_D,DF_D); \
- M(r);M(d);M(R);
-
- /* R3;D1;R1;D2;R3;D3;R1; */
- #define R3D1R1D2R3D3R1 \
- Rot2(URF_U,DRF_D); \
- Rot2(URF_R,DRF_F); \
- Rot2(URF_F,DRF_R); \
- Rot2(DLB_D,DRB_D); \
- Rot2(DLB_L,DRB_B); \
- Rot2(DLB_B,DRB_R); \
- Rot2(RF_R,DL_L); \
- Rot2(RF_F,DL_D); \
- Rot2(DR_D,DB_D); \
- Rot2(DR_R,DB_B); \
- M(r);M(D);M(R);M(D);M(D);M(r);M(d);M(R);
-
- /* F2;D1;R1;F3;R3; */
- #define F2D1R1F3R3 \
- Rot12(ULF_U,URF_F,DLF_F,DRF_F,ULF_F,URF_U,DLF_D,DRF_R, \
- ULF_L,URF_R,DLF_L,DRF_D); \
- Rot6(DLB_D,DRB_D,DLB_L,DRB_B,DLB_B,DRB_R); \
- Rot2(UF_U,UF_F); \
- Rot3(LF_L,DF_D,RF_R); \
- Rot3(LF_F,DF_F,RF_F); \
- Rot6(DL_D,DB_D,DR_D,DL_L,DB_B,DR_R); \
- M(F);M(F);M(D);M(R);M(f);M(r);
-
- /* R3;F3; */
- #define R3F3 \
- Rot15(ULF_U,URB_R,DRB_R,DRF_R,DLF_D,ULF_L,URB_B,DRB_D, \
- DRF_F,DLF_F,ULF_F,URB_U,DRB_B,DRF_D,DLF_L); \
- Rot3(URF_U,URF_R,URF_F); \
- Rot7(UR_U,RB_B,DR_D,RF_F,DF_F,LF_F,UF_F); \
- Rot7(UR_R,RB_R,DR_R,RF_R,DF_D,LF_L,UF_U); \
- M(r);M(f);
-
- /* B2;D3;R1;F3;R3; */
- #define B2D3R1F3R3 \
- Rot7(ULF_U,ULB_B,DRB_B,DRF_F,URB_B,DLB_B,DLF_L); \
- Rot7(ULF_L,ULB_L,DRB_R,DRF_D,URB_U,DLB_D,DLF_D); \
- Rot7(ULF_F,ULB_U,DRB_D,DRF_R,URB_R,DLB_L,DLF_F); \
- Rot12(UF_U,UB_B,DB_B,DL_L,DF_F,LF_F,UF_F,UB_U,DB_D,DL_D, \
- DF_D,LF_L); \
- Rot2(LB_L,RB_R); \
- Rot2(LB_B,RB_B); \
- Rot2(DR_D,DR_R); \
- M(B);M(B);M(d);M(R);M(f);M(r);
-
- /* L1;F1; */
- #define L1F1 \
- Rot3(ULF_U,ULF_L,ULF_F); \
- Rot15(DLF_D,DRF_R,URF_U,ULB_L,DLB_L,DLF_L,DRF_D,URF_R, \
- ULB_B,DLB_D,DLF_F,DRF_F,URF_F,ULB_U,DLB_B); \
- Rot7(UL_U,LB_B,DL_D,LF_F,DF_F,RF_F,UF_F); \
- Rot7(UL_L,LB_L,DL_L,LF_L,DF_D,RF_R,UF_U); \
- M(L);M(F);
-
- /* R2;D3;F2; */
- #define R2D3F2 \
- Rot4(ULF_U,URF_U,URB_U,DRF_D); \
- Rot4(ULF_L,URF_F,URB_R,DRF_R); \
- Rot4(ULF_F,URF_R,URB_B,DRF_F); \
- Rot3(DLF_D,DRB_D,DLB_D); \
- Rot3(DLF_L,DRB_R,DLB_B); \
- Rot3(DLF_F,DRB_B,DLB_L); \
- Rot6(UR_U,DR_D,DB_D,DL_D,DF_D,UF_U); \
- Rot6(UR_R,DR_R,DB_B,DL_L,DF_F,UF_F); \
- Rot3(LF_L,RB_R,RF_R); \
- Rot3(LF_F,RB_B,RF_F); \
- M(R);M(R);M(d);M(F);M(F);
-
- /* B2;D2;F2; */
- #define B2D2F2 \
- Rot4(ULF_U,URB_U,DLB_D,DRF_D); \
- Rot4(ULF_L,URB_R,DLB_L,DRF_R); \
- Rot4(ULF_F,URB_B,DLB_B,DRF_F); \
- Rot4(DLF_D,URF_U,ULB_U,DRB_D); \
- Rot4(DLF_L,URF_R,ULB_L,DRB_R); \
- Rot4(DLF_F,URF_F,ULB_B,DRB_B); \
- Rot4(UF_U,UB_U,DB_D,DF_D); \
- Rot4(UF_F,UB_B,DB_B,DF_F); \
- Rot2(LF_L,RF_R); \
- Rot2(LF_F,RF_F); \
- Rot2(LB_L,RB_R); \
- Rot2(LB_B,RB_B); \
- Rot2(DL_D,DR_D); \
- Rot2(DL_L,DR_R); \
- M(B);M(B);M(D);M(D);M(F);M(F);
-
- /* L2;D1;F2; */
- #define L2D1F2 \
- Rot4(ULF_U,ULB_U,DLF_D,URF_U); \
- Rot4(ULF_L,ULB_B,DLF_F,URF_F); \
- Rot4(ULF_F,ULB_L,DLF_L,URF_R); \
- Rot3(DRF_D,DLB_D,DRB_D); \
- Rot3(DRF_R,DLB_L,DRB_B); \
- Rot3(DRF_F,DLB_B,DRB_R); \
- Rot6(UL_U,DL_D,DB_D,DR_D,DF_D,UF_U); \
- Rot6(UL_L,DL_L,DB_B,DR_R,DF_F,UF_F); \
- Rot3(LF_L,RF_R,LB_L); \
- Rot3(LF_F,RF_F,LB_B); \
- M(L);M(L);M(D);M(F);M(F);
-
- /* B3;D3;B1;R1;F3;R3; */
- #define B3D3B1R1F3R3 \
- Rot5(ULF_U,URB_B,DRB_D,DRF_R,DLF_L); \
- Rot5(ULF_L,URB_U,DRB_B,DRF_F,DLF_D); \
- Rot5(ULF_F,URB_R,DRB_R,DRF_D,DLF_F); \
- Rot10(UF_U,RB_B,DL_L,DF_F,LF_F,UF_F,RB_R,DL_D,DF_D,LF_L);\
- Rot2(DR_D,DR_R); \
- M(b);M(d);M(B);M(R);M(f);M(r);
-
- /* B1;D2;B3;F2; */
- #define B1D2B3F2 \
- Rot3(ULF_U,ULB_L,DRF_D); \
- Rot3(ULF_L,ULB_U,DRF_R); \
- Rot3(ULF_F,ULB_B,DRF_F); \
- Rot3(DLF_D,URF_U,DLB_L); \
- Rot3(DLF_L,URF_R,DLB_D); \
- Rot3(DLF_F,URF_F,DLB_B); \
- Rot3(UF_U,LB_L,DF_D); \
- Rot3(UF_F,LB_B,DF_F); \
- Rot2(LF_L,RF_R); \
- Rot2(LF_F,RF_F); \
- Rot2(DL_D,DR_D); \
- Rot2(DL_L,DR_R); \
- M(B);M(D);M(D);M(b);M(F);M(F);
-
- /* L1;D1;L3;F2; */
- #define L1D1L3F2 \
- Rot3(ULF_U,ULF_F,ULF_L); \
- Rot12(DLF_D,URF_U,DRB_R,DRF_F,DLF_F,URF_F,DRB_D,DRF_D, \
- DLF_L,URF_R,DRB_B,DRF_R); \
- Rot6(UF_U,LF_F,RF_F,DB_D,DR_D,DF_D); \
- Rot6(UF_F,LF_L,RF_R,DB_B,DR_R,DF_F); \
- M(L);M(D);M(l);M(F);M(F);
-
- /* F1;D1;R1;F3;R3; */
- #define F1D1R1F3R3 \
- Rot9(ULF_U,DRF_F,URF_F,ULF_F,DRF_R,URF_U,ULF_L,DRF_D, \
- URF_R); \
- Rot6(DLB_D,DRB_D,DLB_L,DRB_B,DLB_B,DRB_R); \
- Rot4(UF_U,RF_F,UF_F,RF_R); \
- Rot6(DL_D,DB_D,DR_D,DL_L,DB_B,DR_R); \
- M(F);M(D);M(R);M(f);M(r);
-
- /* R2;F3;R2; */
- #define R2F3R2 \
- Rot4(ULF_U,DRB_R,URB_U,DLF_L); \
- Rot4(ULF_L,DRB_D,URB_R,DLF_D); \
- Rot4(ULF_F,DRB_B,URB_B,DLF_F); \
- Rot4(UF_U,RB_R,DF_D,LF_L); \
- Rot4(UF_F,RB_B,DF_F,LF_F); \
- M(R);M(R);M(f);M(R);M(R);
-
- /* B1;D3;B3;R1;F3;R3; */
- #define B1D3B3R1F3R3 \
- Rot12(ULF_U,DLB_B,ULB_U,DLF_F,ULF_F,DLB_L,ULB_L,DLF_D, \
- ULF_L,DLB_D,ULB_B,DLF_L); \
- Rot6(DRF_D,DRB_D,DRF_R,DRB_B,DRF_F,DRB_R); \
- Rot10(UF_U,LB_B,DL_L,DF_F,LF_F,UF_F,LB_L,DL_D,DF_D,LF_L);\
- Rot2(DR_D,DR_R); \
- M(B);M(d);M(b);M(R);M(f);M(r);
-
- /* D1;R1;F3;R3; */
- #define D1R1F3R3 \
- Rot6(ULF_U,DLF_F,ULF_F,DLF_D,ULF_L,DLF_L); \
- Rot6(DLB_D,DRB_D,DLB_L,DRB_B,DLB_B,DRB_R); \
- Rot6(UF_U,DF_F,LF_F,UF_F,DF_D,LF_L); \
- Rot6(DL_D,DB_D,DR_D,DL_L,DB_B,DR_R); \
- M(D);M(R);M(f);M(r);
-
- /* R1;F3;R3; */
- #define R1F3R3 \
- Rot4(ULF_U,DRF_R,DRB_B,DLF_L); \
- Rot4(ULF_L,DRF_F,DRB_R,DLF_D); \
- Rot4(ULF_F,DRF_D,DRB_D,DLF_F); \
- Rot4(UF_U,DR_R,DF_D,LF_L); \
- Rot4(UF_F,DR_D,DF_F,LF_F); \
- M(R);M(f);M(r);
-
- /* D3;R1;F3;R3; */
- #define D3R1F3R3 \
- Rot5(ULF_U,DRB_B,DRF_F,DLB_B,DLF_L); \
- Rot5(ULF_L,DRB_R,DRF_D,DLB_D,DLF_D); \
- Rot5(ULF_F,DRB_D,DRF_R,DLB_L,DLF_F); \
- Rot10(UF_U,DB_B,DL_L,DF_F,LF_F,UF_F,DB_D,DL_D,DF_D,LF_L);\
- Rot2(DR_D,DR_R); \
- M(d);M(R);M(f);M(r);
-
- /* L3;F1;L1; */
- #define L3F1L1 \
- Rot4(DLF_D,DLB_D,DRF_F,URF_F); \
- Rot4(DLF_L,DLB_B,DRF_R,URF_U); \
- Rot4(DLF_F,DLB_L,DRF_D,URF_R); \
- Rot4(UF_U,DL_L,DF_D,RF_R); \
- Rot4(UF_F,DL_D,DF_F,RF_F); \
- M(l);M(F);M(L);
-
- /* D3;F2; */
- #define D3F2 \
- Rot6(ULF_U,DRB_D,DLB_D,DLF_D,URF_U,DRF_D); \
- Rot6(ULF_L,DRB_B,DLB_L,DLF_F,URF_F,DRF_R); \
- Rot6(ULF_F,DRB_R,DLB_B,DLF_L,URF_R,DRF_F); \
- Rot5(UF_U,DR_D,DB_D,DL_D,DF_D); \
- Rot5(UF_F,DR_R,DB_B,DL_L,DF_F); \
- Rot2(LF_L,RF_R); \
- Rot2(LF_F,RF_F); \
- M(d);M(F);M(F);
-
- /* D2;F2; */
- #define D2F2 \
- Rot3(ULF_U,DLB_D,DRF_D); \
- Rot3(ULF_L,DLB_L,DRF_R); \
- Rot3(ULF_F,DLB_B,DRF_F); \
- Rot3(DLF_D,URF_U,DRB_D); \
- Rot3(DLF_L,URF_R,DRB_R); \
- Rot3(DLF_F,URF_F,DRB_B); \
- Rot3(UF_U,DB_D,DF_D); \
- Rot3(UF_F,DB_B,DF_F); \
- Rot2(LF_L,RF_R); \
- Rot2(LF_F,RF_F); \
- Rot2(DL_D,DR_D); \
- Rot2(DL_L,DR_R); \
- M(D);M(D);M(F);M(F);
-
- /* D1;F2; */
- #define D1F2 \
- Rot6(ULF_U,DLF_D,URF_U,DLB_D,DRB_D,DRF_D); \
- Rot6(ULF_L,DLF_F,URF_F,DLB_L,DRB_B,DRF_R); \
- Rot6(ULF_F,DLF_L,URF_R,DLB_B,DRB_R,DRF_F); \
- Rot5(UF_U,DL_D,DB_D,DR_D,DF_D); \
- Rot5(UF_F,DL_L,DB_B,DR_R,DF_F); \
- Rot2(LF_L,RF_R); \
- Rot2(LF_F,RF_F); \
- M(D);M(F);M(F);
-
- /* F1;R1; */
- #define F1R1 \
- Rot15(ULF_U,DLF_L,DRF_D,DRB_B,URB_U,ULF_F,DLF_F,DRF_F, \
- DRB_D,URB_B,ULF_L,DLF_D,DRF_R,DRB_R,URB_R); \
- Rot3(URF_U,URF_F,URF_R); \
- Rot7(UR_U,UF_F,LF_F,DF_F,RF_F,DR_D,RB_B); \
- Rot7(UR_R,UF_U,LF_L,DF_D,RF_R,DR_R,RB_R); \
- M(F);M(R);
-
- /* R2;D1;B1;R3;B3; */
- #define R2D1B1R3B3 \
- Rot6(DLF_D,DLB_D,DLF_F,DLB_L,DLF_L,DLB_B); \
- Rot12(URF_U,URB_R,DRF_R,DRB_R,URF_R,URB_U,DRF_D,DRB_B, \
- URF_F,URB_B,DRF_F,DRB_D); \
- Rot2(UR_U,UR_R); \
- Rot3(RF_R,DR_R,RB_R); \
- Rot3(RF_F,DR_D,RB_B); \
- Rot6(DL_D,DB_D,DF_F,DL_L,DB_B,DF_D); \
- M(R);M(R);M(D);M(B);M(r);M(b);
-
- /* B3;R3; */
- #define B3R3 \
- Rot15(URF_U,ULB_B,DLB_B,DRB_B,DRF_D,URF_F,ULB_L,DLB_D, \
- DRB_R,DRF_R,URF_R,ULB_U,DLB_L,DRB_D,DRF_F); \
- Rot3(URB_U,URB_B,URB_R); \
- Rot7(UR_U,UB_B,LB_B,DB_B,RB_B,DR_D,RF_F); \
- Rot7(UR_R,UB_U,LB_L,DB_D,RB_R,DR_R,RF_R); \
- M(b);M(r);
-
- /* L2;D3;B1;R3;B3; */
- #define L2D3B1R3B3 \
- Rot7(ULF_U,DLB_D,DRB_B,ULB_B,DLF_F,DRF_R,URF_R); \
- Rot7(ULF_L,DLB_L,DRB_R,ULB_L,DLF_L,DRF_F,URF_U); \
- Rot7(ULF_F,DLB_B,DRB_D,ULB_U,DLF_D,DRF_D,URF_F); \
- Rot12(UL_U,DL_D,DF_D,DR_D,RF_F,UR_U,UL_L,DL_L,DF_F, \
- DR_R,RF_R,UR_R); \
- Rot2(LF_L,LB_L); \
- Rot2(LF_F,LB_B); \
- Rot2(DB_D,DB_B); \
- M(L);M(L);M(d);M(B);M(r);M(b);
-
- /* F2;D1;R2; */
- #define F2D1R2 \
- Rot4(ULF_U,DRF_D,URB_U,URF_U); \
- Rot4(ULF_L,DRF_R,URB_R,URF_F); \
- Rot4(ULF_F,DRF_F,URB_B,URF_R); \
- Rot3(DLF_D,DLB_D,DRB_D); \
- Rot3(DLF_L,DLB_B,DRB_R); \
- Rot3(DLF_F,DLB_L,DRB_B); \
- Rot6(UR_U,UF_U,DF_D,DL_D,DB_D,DR_D); \
- Rot6(UR_R,UF_F,DF_F,DL_L,DB_B,DR_R); \
- Rot3(LF_L,RF_R,RB_R); \
- Rot3(LF_F,RF_F,RB_B); \
- M(F);M(F);M(D);M(R);M(R);
-
- /* B2;D3;R2; */
- #define B2D3R2 \
- Rot3(DLF_D,DRF_D,DLB_D); \
- Rot3(DLF_L,DRF_F,DLB_B); \
- Rot3(DLF_F,DRF_R,DLB_L); \
- Rot4(URF_U,URB_U,ULB_U,DRB_D); \
- Rot4(URF_R,URB_B,ULB_L,DRB_R); \
- Rot4(URF_F,URB_R,ULB_B,DRB_B); \
- Rot6(UR_U,UB_U,DB_D,DL_D,DF_D,DR_D); \
- Rot6(UR_R,UB_B,DB_B,DL_L,DF_F,DR_R); \
- Rot3(LB_L,RB_R,RF_R); \
- Rot3(LB_B,RB_B,RF_F); \
- M(B);M(B);M(d);M(R);M(R);
-
- /* L2;D2;R2; */
- #define L2D2R2 \
- Rot4(ULF_U,DLB_D,DRF_D,URB_U); \
- Rot4(ULF_L,DLB_L,DRF_R,URB_R); \
- Rot4(ULF_F,DLB_B,DRF_F,URB_B); \
- Rot4(DLF_D,DRB_D,URF_U,ULB_U); \
- Rot4(DLF_L,DRB_R,URF_R,ULB_L); \
- Rot4(DLF_F,DRB_B,URF_F,ULB_B); \
- Rot4(UL_U,DL_D,DR_D,UR_U); \
- Rot4(UL_L,DL_L,DR_R,UR_R); \
- Rot2(LF_L,LB_L); \
- Rot2(LF_F,LB_B); \
- Rot2(RF_R,RB_R); \
- Rot2(RF_F,RB_B); \
- Rot2(DF_D,DB_D); \
- Rot2(DF_F,DB_B); \
- M(L);M(L);M(D);M(D);M(R);M(R);
-
- /* F1;D1;F3;R2; */
- #define F1D1F3R2 \
- Rot3(URF_U,URF_R,URF_F); \
- Rot12(DRF_D,URB_U,DLB_B,DRB_R,DRF_R,URB_R,DLB_D,DRB_D, \
- DRF_F,URB_B,DLB_L,DRB_B); \
- Rot6(UR_U,RF_R,RB_R,DL_D,DB_D,DR_D); \
- Rot6(UR_R,RF_F,RB_B,DL_L,DB_B,DR_R); \
- M(F);M(D);M(f);M(R);M(R);
-
- /* L3;D3;L1;B1;R3;B3; */
- #define L3D3L1B1R3B3 \
- Rot5(URF_U,ULB_L,DLB_D,DRB_B,DRF_F); \
- Rot5(URF_R,ULB_B,DLB_B,DRB_D,DRF_R); \
- Rot5(URF_F,ULB_U,DLB_L,DRB_R,DRF_D); \
- Rot10(UR_U,LB_L,DF_F,DR_R,RF_R,UR_R,LB_B,DF_D,DR_D,RF_F);\
- Rot2(DB_D,DB_B); \
- M(l);M(d);M(L);M(B);M(r);M(b);
-
- /* L1;D2;L3;R2; */
- #define L1D2L3R2 \
- Rot3(ULF_U,DRB_B,URF_F); \
- Rot3(ULF_L,DRB_R,URF_R); \
- Rot3(ULF_F,DRB_D,URF_U); \
- Rot3(DLF_D,DRF_F,URB_B); \
- Rot3(DLF_L,DRF_R,URB_R); \
- Rot3(DLF_F,DRF_D,URB_U); \
- Rot3(UR_U,LF_F,DR_D); \
- Rot3(UR_R,LF_L,DR_R); \
- Rot2(RF_R,RB_R); \
- Rot2(RF_F,RB_B); \
- Rot2(DF_D,DB_D); \
- Rot2(DF_F,DB_B); \
- M(L);M(D);M(D);M(l);M(R);M(R);
-
- /* R1;D1;B1;R3;B3; */
- #define R1D1B1R3B3 \
- Rot6(DLF_D,DLB_D,DLF_F,DLB_L,DLF_L,DLB_B); \
- Rot9(URF_U,DRB_R,URB_R,URF_R,DRB_B,URB_U,URF_F,DRB_D, \
- URB_B); \
- Rot4(UR_U,RB_R,UR_R,RB_B); \
- Rot6(DL_D,DB_D,DF_F,DL_L,DB_B,DF_D); \
- M(R);M(D);M(B);M(r);M(b);
-
- /* B2;R3;B2; */
- #define B2R3B2 \
- Rot4(URF_U,DLB_B,ULB_U,DRF_F); \
- Rot4(URF_R,DLB_L,ULB_L,DRF_R); \
- Rot4(URF_F,DLB_D,ULB_B,DRF_D); \
- Rot4(UR_U,LB_B,DR_D,RF_F); \
- Rot4(UR_R,LB_L,DR_R,RF_R); \
- M(B);M(B);M(r);M(B);M(B);
-
- /* L1;D3;L3;B1;R3;B3; */
- #define L1D3L3B1R3B3 \
- Rot12(ULF_U,DRF_R,URF_R,DLF_F,ULF_F,DRF_D,URF_F,DLF_D, \
- ULF_L,DRF_F,URF_U,DLF_L); \
- Rot6(DLB_D,DRB_B,DLB_L,DRB_R,DLB_B,DRB_D); \
- Rot10(UR_U,LF_L,DF_F,DR_R,RF_R,UR_R,LF_F,DF_D,DR_D,RF_F);\
- Rot2(DB_D,DB_B); \
- M(L);M(d);M(l);M(B);M(r);M(b);
-
- /* F3;R1;F1; */
- #define F3R1F1 \
- Rot4(DLF_D,DRB_R,URB_R,DRF_D); \
- Rot4(DLF_L,DRB_B,URB_U,DRF_F); \
- Rot4(DLF_F,DRB_D,URB_B,DRF_R); \
- Rot4(UR_U,DF_F,DR_D,RB_B); \
- Rot4(UR_R,DF_D,DR_R,RB_R); \
- M(f);M(R);M(F);
-
- /* D1;B1;R3;B3; */
- #define D1B1R3B3 \
- Rot6(DLF_D,DLB_D,DLF_F,DLB_L,DLF_L,DLB_B); \
- Rot6(URF_U,DRF_R,URF_R,DRF_D,URF_F,DRF_F); \
- Rot6(UR_U,DR_R,RF_R,UR_R,DR_D,RF_F); \
- Rot6(DL_D,DB_D,DF_F,DL_L,DB_B,DF_D); \
- M(D);M(B);M(r);M(b);
-
- /* B1;R3;B3; */
- #define B1R3B3 \
- Rot4(URF_U,DRB_B,DLB_L,DRF_F); \
- Rot4(URF_R,DRB_D,DLB_D,DRF_R); \
- Rot4(URF_F,DRB_R,DLB_B,DRF_D); \
- Rot4(UR_U,DB_B,DR_D,RF_F); \
- Rot4(UR_R,DB_D,DR_R,RF_R); \
- M(B);M(r);M(b);
-
- /* D3;B1;R3;B3; */
- #define D3B1R3B3 \
- Rot5(DLF_D,DRF_D,URF_F,DLB_B,DRB_D); \
- Rot5(DLF_L,DRF_F,URF_U,DLB_L,DRB_R); \
- Rot5(DLF_F,DRF_R,URF_R,DLB_D,DRB_B); \
- Rot10(UR_U,DL_L,DF_F,DR_R,RF_R,UR_R,DL_D,DF_D,DR_D,RF_F);\
- Rot2(DB_D,DB_B); \
- M(d);M(B);M(r);M(b);
-
- /* D1;R2; */
- #define D1R2 \
- Rot6(DLF_D,DLB_D,DRB_D,URF_U,DRF_D,URB_U); \
- Rot6(DLF_L,DLB_B,DRB_R,URF_R,DRF_F,URB_B); \
- Rot6(DLF_F,DLB_L,DRB_B,URF_F,DRF_R,URB_R); \
- Rot5(UR_U,DF_D,DL_D,DB_D,DR_D); \
- Rot5(UR_R,DF_F,DL_L,DB_B,DR_R); \
- Rot2(RF_R,RB_R); \
- Rot2(RF_F,RB_B); \
- M(D);M(R);M(R);
-
- /* D3;R2; */
- #define D3R2 \
- Rot6(DLF_D,DRF_D,URB_U,DRB_D,URF_U,DLB_D); \
- Rot6(DLF_L,DRF_F,URB_B,DRB_R,URF_R,DLB_B); \
- Rot6(DLF_F,DRF_R,URB_R,DRB_B,URF_F,DLB_L); \
- Rot5(UR_U,DB_D,DL_D,DF_D,DR_D); \
- Rot5(UR_R,DB_B,DL_L,DF_F,DR_R); \
- Rot2(RF_R,RB_R); \
- Rot2(RF_F,RB_B); \
- M(d);M(R);M(R);
-
- /* D2;R2; */
- #define D2R2 \
- Rot3(DLF_D,DRB_D,URF_U); \
- Rot3(DLF_L,DRB_R,URF_R); \
- Rot3(DLF_F,DRB_B,URF_F); \
- Rot3(DRF_D,URB_U,DLB_D); \
- Rot3(DRF_R,URB_R,DLB_L); \
- Rot3(DRF_F,URB_B,DLB_B); \
- Rot3(UR_U,DL_D,DR_D); \
- Rot3(UR_R,DL_L,DR_R); \
- Rot2(RF_R,RB_R); \
- Rot2(RF_F,RB_B); \
- Rot2(DF_D,DB_D); \
- Rot2(DF_F,DB_B); \
- M(D);M(D);M(R);M(R);
-
- /* F2;D3;L1;B3;L3; */
- #define F2D3L1B3L3 \
- Rot7(ULF_U,DRF_D,DRB_D,URB_R,URF_R,DLF_L,DLB_D); \
- Rot7(ULF_L,DRF_R,DRB_B,URB_B,URF_U,DLF_D,DLB_L); \
- Rot7(ULF_F,DRF_F,DRB_R,URB_U,URF_F,DLF_F,DLB_B); \
- Rot12(UF_U,DF_D,DR_D,DB_D,RB_R,UB_U,UF_F,DF_F,DR_R, \
- DB_B,RB_B,UB_B); \
- Rot2(LF_L,RF_R); \
- Rot2(LF_F,RF_F); \
- Rot2(DL_D,DL_L); \
- M(F);M(F);M(d);M(L);M(b);M(l);
-
- /* R1;B1; */
- #define R1B1 \
- Rot15(URF_U,DRF_F,DRB_D,DLB_L,ULB_U,URF_R,DRF_R,DRB_R, \
- DLB_D,ULB_L,URF_F,DRF_D,DRB_B,DLB_B,ULB_B); \
- Rot3(URB_U,URB_R,URB_B); \
- Rot7(UR_U,RF_F,DR_D,RB_B,DB_B,LB_B,UB_B); \
- Rot7(UR_R,RF_R,DR_R,RB_R,DB_D,LB_L,UB_U); \
- M(R);M(B);
-
- /* B2;D1;L1;B3;L3; */
- #define B2D1L1B3L3 \
- Rot6(DLF_D,DRF_R,DLF_F,DRF_F,DLF_L,DRF_D); \
- Rot12(ULB_U,DRB_D,DLB_L,URB_R,ULB_L,DRB_R,DLB_D,URB_U, \
- ULB_B,DRB_B,DLB_B,URB_B); \
- Rot2(UB_U,UB_B); \
- Rot3(LB_L,RB_R,DB_D); \
- Rot3(LB_B,RB_B,DB_B); \
- Rot6(DL_D,DR_R,DF_F,DL_L,DR_D,DF_D); \
- M(B);M(B);M(D);M(L);M(b);M(l);
-
- /* L3;B3; */
- #define L3B3 \
- Rot15(ULF_U,DLF_F,DLB_D,DRB_R,URB_U,ULF_L,DLF_L,DLB_L, \
- DRB_D,URB_R,ULF_F,DLF_D,DLB_B,DRB_B,URB_B); \
- Rot3(ULB_U,ULB_L,ULB_B); \
- Rot7(UL_U,LF_F,DL_D,LB_B,DB_B,RB_B,UB_B); \
- Rot7(UL_L,LF_L,DL_L,LB_L,DB_D,RB_R,UB_U); \
- M(l);M(b);
-
- /* F2;D2;B2; */
- #define F2D2B2 \
- Rot4(ULF_U,DRF_D,DLB_D,URB_U); \
- Rot4(ULF_L,DRF_R,DLB_L,URB_R); \
- Rot4(ULF_F,DRF_F,DLB_B,URB_B); \
- Rot4(DLF_D,DRB_D,ULB_U,URF_U); \
- Rot4(DLF_L,DRB_R,ULB_L,URF_R); \
- Rot4(DLF_F,DRB_B,ULB_B,URF_F); \
- Rot4(UF_U,DF_D,DB_D,UB_U); \
- Rot4(UF_F,DF_F,DB_B,UB_B); \
- Rot2(LF_L,RF_R); \
- Rot2(LF_F,RF_F); \
- Rot2(LB_L,RB_R); \
- Rot2(LB_B,RB_B); \
- Rot2(DL_D,DR_D); \
- Rot2(DL_L,DR_R); \
- M(F);M(F);M(D);M(D);M(B);M(B);
-
- /* R2;D1;B2; */
- #define R2D1B2 \
- Rot3(DLF_D,DLB_D,DRF_D); \
- Rot3(DLF_L,DLB_B,DRF_F); \
- Rot3(DLF_F,DLB_L,DRF_R); \
- Rot4(URF_U,DRB_D,ULB_U,URB_U); \
- Rot4(URF_R,DRB_R,ULB_L,URB_B); \
- Rot4(URF_F,DRB_B,ULB_B,URB_R); \
- Rot6(UR_U,DR_D,DF_D,DL_D,DB_D,UB_U); \
- Rot6(UR_R,DR_R,DF_F,DL_L,DB_B,UB_B); \
- Rot3(LB_L,RF_R,RB_R); \
- Rot3(LB_B,RF_F,RB_B); \
- M(R);M(R);M(D);M(B);M(B);
-
- /* L2;D3;B2; */
- #define L2D3B2 \
- Rot4(ULF_U,DLB_D,URB_U,ULB_U); \
- Rot4(ULF_L,DLB_L,URB_R,ULB_B); \
- Rot4(ULF_F,DLB_B,URB_B,ULB_L); \
- Rot3(DLF_D,DRF_D,DRB_D); \
- Rot3(DLF_L,DRF_F,DRB_R); \
- Rot3(DLF_F,DRF_R,DRB_B); \
- Rot6(UL_U,DL_D,DF_D,DR_D,DB_D,UB_U); \
- Rot6(UL_L,DL_L,DF_F,DR_R,DB_B,UB_B); \
- Rot3(LF_L,LB_L,RB_R); \
- Rot3(LF_F,LB_B,RB_B); \
- M(L);M(L);M(d);M(B);M(B);
-
- /* F1;D2;F3;B2; */
- #define F1D2F3B2 \
- Rot3(URF_U,DLB_L,URB_R); \
- Rot3(URF_R,DLB_D,URB_U); \
- Rot3(URF_F,DLB_B,URB_B); \
- Rot3(DRF_D,DRB_R,ULB_L); \
- Rot3(DRF_R,DRB_D,ULB_U); \
- Rot3(DRF_F,DRB_B,ULB_B); \
- Rot3(UB_U,RF_R,DB_D); \
- Rot3(UB_B,RF_F,DB_B); \
- Rot2(LB_L,RB_R); \
- Rot2(LB_B,RB_B); \
- Rot2(DL_D,DR_D); \
- Rot2(DL_L,DR_R); \
- M(F);M(D);M(D);M(f);M(B);M(B);
-
- /* R1;D1;R3;B2; */
- #define R1D1R3B2 \
- Rot12(DLF_D,DLB_D,DRB_R,ULB_L,DLF_F,DLB_L,DRB_D,ULB_U, \
- DLF_L,DLB_B,DRB_B,ULB_B); \
- Rot3(URB_U,URB_B,URB_R); \
- Rot6(UB_U,RB_B,LB_B,DF_D,DL_D,DB_D); \
- Rot6(UB_B,RB_R,LB_L,DF_F,DL_L,DB_B); \
- M(R);M(D);M(r);M(B);M(B);
-
- /* F3;D3;F1;L1;B3;L3; */
- #define F3D3F1L1B3L3 \
- Rot5(ULF_U,DLF_F,DLB_B,DRB_D,URB_R); \
- Rot5(ULF_L,DLF_L,DLB_D,DRB_B,URB_B); \
- Rot5(ULF_F,DLF_D,DLB_L,DRB_R,URB_U); \
- Rot10(UB_U,LF_F,DR_R,DB_B,RB_B,UB_B,LF_L,DR_D,DB_D,RB_R); \
- Rot2(DL_D,DL_L); \
- M(f);M(d);M(F);M(L);M(b);M(l);
-
- /* F1;D3;F3;L1;B3;L3; */
- #define F1D3F3L1B3L3 \
- Rot6(DLF_D,DLB_L,DLF_F,DLB_B,DLF_L,DLB_D); \
- Rot12(URF_U,DRB_B,URB_B,DRF_R,URF_R,DRB_D,URB_R,DRF_D, \
- URF_F,DRB_R,URB_U,DRF_F); \
- Rot10(UB_U,RF_F,DR_R,DB_B,RB_B,UB_B,RF_R,DR_D,DB_D,RB_R); \
- Rot2(DL_D,DL_L); \
- M(F);M(d);M(f);M(L);M(b);M(l);
-
- /* B1;D1;L1;B3;L3; */
- #define B1D1L1B3L3 \
- Rot6(DLF_D,DRF_R,DLF_F,DRF_F,DLF_L,DRF_D); \
- Rot9(ULB_U,URB_R,DLB_D,ULB_L,URB_U,DLB_B,ULB_B,URB_B, \
- DLB_L); \
- Rot4(UB_U,LB_B,UB_B,LB_L); \
- Rot6(DL_D,DR_R,DF_F,DL_L,DR_D,DF_D); \
- M(B);M(D);M(L);M(b);M(l);
-
- /* L2;B3;L2; */
- #define L2B3L2 \
- Rot4(ULF_U,DRB_R,URB_U,DLF_L); \
- Rot4(ULF_L,DRB_D,URB_R,DLF_D); \
- Rot4(ULF_F,DRB_B,URB_B,DLF_F); \
- Rot4(UB_U,LF_L,DB_D,RB_R); \
- Rot4(UB_B,LF_F,DB_B,RB_B); \
- M(L);M(L);M(b);M(L);M(L);
-
- /* D3;L1;B3;L3; */
- #define D3L1B3L3 \
- Rot5(DLF_D,DLB_L,DRF_R,DRB_B,URB_B); \
- Rot5(DLF_L,DLB_D,DRF_D,DRB_D,URB_R); \
- Rot5(DLF_F,DLB_B,DRF_F,DRB_R,URB_U); \
- Rot10(UB_U,DF_F,DR_R,DB_B,RB_B,UB_B,DF_D,DR_D,DB_D,RB_R);\
- Rot2(DL_D,DL_L); \
- M(d);M(L);M(b);M(l);
-
- /* R3;B1;R1; */
- #define R3B1R1 \
- Rot4(DRF_D,DLB_B,ULB_B,DRB_D); \
- Rot4(DRF_R,DLB_D,ULB_L,DRB_B); \
- Rot4(DRF_F,DLB_L,ULB_U,DRB_R); \
- Rot4(UB_U,DR_R,DB_D,LB_L); \
- Rot4(UB_B,DR_D,DB_B,LB_B); \
- M(r);M(B);M(R);
-
- /* D1;L1;B3;L3; */
- #define D1L1B3L3 \
- Rot6(DLF_D,DRF_R,DLF_F,DRF_F,DLF_L,DRF_D); \
- Rot6(URB_U,DRB_B,URB_B,DRB_D,URB_R,DRB_R); \
- Rot6(UB_U,DB_B,RB_B,UB_B,DB_D,RB_R); \
- Rot6(DL_D,DR_R,DF_F,DL_L,DR_D,DF_D); \
- M(D);M(L);M(b);M(l);
-
- /* L1;B3;L3; */
- #define L1B3L3 \
- Rot4(DLF_D,DRB_B,URB_B,DLB_D); \
- Rot4(DLF_L,DRB_D,URB_R,DLB_B); \
- Rot4(DLF_F,DRB_R,URB_U,DLB_L); \
- Rot4(UB_U,DL_L,DB_D,RB_R); \
- Rot4(UB_B,DL_D,DB_B,RB_B); \
- M(L);M(b);M(l);
-
- /* D2;B2; */
- #define D2B2 \
- Rot3(DLF_D,DRB_D,ULB_U); \
- Rot3(DLF_L,DRB_R,ULB_L); \
- Rot3(DLF_F,DRB_B,ULB_B); \
- Rot3(DRF_D,DLB_D,URB_U); \
- Rot3(DRF_R,DLB_L,URB_R); \
- Rot3(DRF_F,DLB_B,URB_B); \
- Rot3(UB_U,DF_D,DB_D); \
- Rot3(UB_B,DF_F,DB_B); \
- Rot2(LB_L,RB_R); \
- Rot2(LB_B,RB_B); \
- Rot2(DL_D,DR_D); \
- Rot2(DL_L,DR_R); \
- M(D);M(D);M(B);M(B);
-
- /* D1;B2; */
- #define D1B2 \
- Rot6(DLF_D,DLB_D,URB_U,DRB_D,ULB_U,DRF_D); \
- Rot6(DLF_L,DLB_B,URB_B,DRB_R,ULB_L,DRF_F); \
- Rot6(DLF_F,DLB_L,URB_R,DRB_B,ULB_B,DRF_R); \
- Rot5(UB_U,DR_D,DF_D,DL_D,DB_D); \
- Rot5(UB_B,DR_R,DF_F,DL_L,DB_B); \
- Rot2(LB_L,RB_R); \
- Rot2(LB_B,RB_B); \
- M(D);M(B);M(B);
-
- /* D3;B2; */
- #define D3B2 \
- Rot6(DLF_D,DRF_D,DRB_D,ULB_U,DLB_D,URB_U); \
- Rot6(DLF_L,DRF_F,DRB_R,ULB_L,DLB_B,URB_B); \
- Rot6(DLF_F,DRF_R,DRB_B,ULB_B,DLB_L,URB_R); \
- Rot5(UB_U,DL_D,DF_D,DR_D,DB_D); \
- Rot5(UB_B,DL_L,DF_F,DR_R,DB_B); \
- Rot2(LB_L,RB_R); \
- Rot2(LB_B,RB_B); \
- M(d);M(B);M(B);
-
- /* F3;L3; */
- #define F3L3 \
- Rot3(ULF_U,ULF_F,ULF_L); \
- Rot15(DLF_D,DLB_B,ULB_U,URF_F,DRF_F,DLF_F,DLB_D,ULB_B, \
- URF_R,DRF_D,DLF_L,DLB_L,ULB_L,URF_U,DRF_R); \
- Rot7(UL_U,UF_F,RF_F,DF_F,LF_F,DL_D,LB_B); \
- Rot7(UL_L,UF_U,RF_R,DF_D,LF_L,DL_L,LB_L); \
- M(f);M(l);
-
- /* R2;D3;F1;L3;F3; */
- #define R2D3F1L3F3 \
- Rot7(DLF_D,URF_U,DRB_D,DLB_D,ULB_B,URB_B,DRF_F); \
- Rot7(DLF_L,URF_R,DRB_R,DLB_B,ULB_U,URB_R,DRF_R); \
- Rot7(DLF_F,URF_F,DRB_B,DLB_L,ULB_L,URB_U,DRF_D); \
- Rot12(UL_U,UR_R,DR_R,DB_B,DL_L,LB_L,UL_L,UR_U,DR_D, \
- DB_D,DL_D,LB_B); \
- Rot2(RF_R,RB_R); \
- Rot2(RF_F,RB_B); \
- Rot2(DF_D,DF_F); \
- M(R);M(R);M(d);M(F);M(l);M(f);
-
- /* B1;L1; */
- #define B1L1 \
- Rot15(ULF_U,URB_B,DRB_B,DLB_B,DLF_D,ULF_F,URB_R,DRB_D, \
- DLB_L,DLF_L,ULF_L,URB_U,DRB_R,DLB_D,DLF_F); \
- Rot3(ULB_U,ULB_B,ULB_L); \
- Rot7(UL_U,UB_B,RB_B,DB_B,LB_B,DL_D,LF_F); \
- Rot7(UL_L,UB_U,RB_R,DB_D,LB_L,DL_L,LF_L); \
- M(B);M(L);
-
- /* L2;D1;F1;L3;F3; */
- #define L2D1F1L3F3 \
- Rot12(ULF_U,DLB_D,DLF_F,ULB_B,ULF_F,DLB_B,DLF_D,ULB_U, \
- ULF_L,DLB_L,DLF_L,ULB_L); \
- Rot6(DRF_D,DRB_B,DRF_R,DRB_R,DRF_F,DRB_D); \
- Rot2(UL_U,UL_L); \
- Rot3(LF_L,LB_L,DL_L); \
- Rot3(LF_F,LB_B,DL_D); \
- Rot6(DR_D,DF_D,DB_B,DR_R,DF_F,DB_D); \
- M(L);M(L);M(D);M(F);M(l);M(f);
-
- /* F2;D3;L2; */
- #define F2D3L2 \
- Rot4(ULF_U,URF_U,DLF_D,ULB_U); \
- Rot4(ULF_L,URF_F,DLF_F,ULB_B); \
- Rot4(ULF_F,URF_R,DLF_L,ULB_L); \
- Rot3(DRF_D,DRB_D,DLB_D); \
- Rot3(DRF_R,DRB_B,DLB_L); \
- Rot3(DRF_F,DRB_R,DLB_B); \
- Rot6(UL_U,UF_U,DF_D,DR_D,DB_D,DL_D); \
- Rot6(UL_L,UF_F,DF_F,DR_R,DB_B,DL_L); \
- Rot3(LF_L,LB_L,RF_R); \
- Rot3(LF_F,LB_B,RF_F); \
- M(F);M(F);M(d);M(L);M(L);
-
- /* R2;D2;L2; */
- #define R2D2L2 \
- Rot4(ULF_U,URB_U,DRF_D,DLB_D); \
- Rot4(ULF_L,URB_R,DRF_R,DLB_L); \
- Rot4(ULF_F,URB_B,DRF_F,DLB_B); \
- Rot4(DLF_D,ULB_U,URF_U,DRB_D); \
- Rot4(DLF_L,ULB_L,URF_R,DRB_R); \
- Rot4(DLF_F,ULB_B,URF_F,DRB_B); \
- Rot4(UL_U,UR_U,DR_D,DL_D); \
- Rot4(UL_L,UR_R,DR_R,DL_L); \
- Rot2(LF_L,LB_L); \
- Rot2(LF_F,LB_B); \
- Rot2(RF_R,RB_R); \
- Rot2(RF_F,RB_B); \
- Rot2(DF_D,DB_D); \
- Rot2(DF_F,DB_B); \
- M(R);M(R);M(D);M(D);M(L);M(L);
-
- /* B2;D1;L2; */
- #define B2D1L2 \
- Rot4(ULF_U,ULB_U,URB_U,DLB_D); \
- Rot4(ULF_L,ULB_B,URB_R,DLB_L); \
- Rot4(ULF_F,ULB_L,URB_B,DLB_B); \
- Rot3(DLF_D,DRB_D,DRF_D); \
- Rot3(DLF_L,DRB_R,DRF_F); \
- Rot3(DLF_F,DRB_B,DRF_R); \
- Rot6(UL_U,UB_U,DB_D,DR_D,DF_D,DL_D); \
- Rot6(UL_L,UB_B,DB_B,DR_R,DF_F,DL_L); \
- Rot3(LF_L,RB_R,LB_L); \
- Rot3(LF_F,RB_B,LB_B); \
- M(B);M(B);M(D);M(L);M(L);
-
- /* R3;D3;R1;F1;L3;F3; */
- #define R3D3R1F1L3F3 \
- Rot5(DLF_D,DLB_L,ULB_L,URF_F,DRF_F); \
- Rot5(DLF_L,DLB_D,ULB_B,URF_U,DRF_R); \
- Rot5(DLF_F,DLB_B,ULB_U,URF_R,DRF_D); \
- Rot10(UL_U,RF_R,DB_B,DL_L,LB_L,UL_L,RF_F,DB_D,DL_D,LB_B);\
- Rot2(DF_D,DF_F); \
- M(r);M(d);M(R);M(F);M(l);M(f);
-
- /* R1;D2;R3;L2; */
- #define R1D2R3L2 \
- Rot3(ULF_U,DRB_B,DLB_D); \
- Rot3(ULF_L,DRB_R,DLB_L); \
- Rot3(ULF_F,DRB_D,DLB_B); \
- Rot3(DLF_D,ULB_U,URB_B); \
- Rot3(DLF_L,ULB_L,URB_R); \
- Rot3(DLF_F,ULB_B,URB_U); \
- Rot3(UL_U,RB_B,DL_D); \
- Rot3(UL_L,RB_R,DL_L); \
- Rot2(LF_L,LB_L); \
- Rot2(LF_F,LB_B); \
- Rot2(DF_D,DB_D); \
- Rot2(DF_F,DB_B); \
- M(R);M(D);M(D);M(r);M(L);M(L);
-
- /* B1;D1;B3;L2; */
- #define B1D1B3L2 \
- Rot12(ULF_U,DRF_F,DLF_L,DLB_L,ULF_L,DRF_D,DLF_D, \
- DLB_B,ULF_F,DRF_R,DLF_F,DLB_D); \
- Rot3(ULB_U,ULB_L,ULB_B); \
- Rot6(UL_U,LB_L,LF_L,DR_D,DF_D,DL_D); \
- Rot6(UL_L,LB_B,LF_F,DR_R,DF_F,DL_L); \
- M(B);M(D);M(b);M(L);M(L);
-
- /* F2;L3;F2; */
- #define F2L3F2 \
- Rot4(URF_U,DLB_B,ULB_U,DRF_F); \
- Rot4(URF_R,DLB_L,ULB_L,DRF_R); \
- Rot4(URF_F,DLB_D,ULB_B,DRF_D); \
- Rot4(UL_U,RF_F,DL_D,LB_B); \
- Rot4(UL_L,RF_R,DL_L,LB_L); \
- M(F);M(F);M(l);M(F);M(F);
-
- /* R1;D3;R3;F1;L3;F3; */
- #define R1D3R3F1L3F3 \
- Rot6(DLF_D,DRF_D,DLF_F,DRF_R,DLF_L,DRF_F); \
- Rot12(ULB_U,DRB_R,URB_U,DLB_L,ULB_L,DRB_B,URB_B,DLB_D, \
- ULB_B,DRB_D,URB_R,DLB_B); \
- Rot10(UL_U,RB_R,DB_B,DL_L,LB_L,UL_L,RB_B,DB_D,DL_D,LB_B);\
- Rot2(DF_D,DF_F); \
- M(R);M(d);M(r);M(F);M(l);M(f);
-
- /* L1;D1;F1;L3;F3; */
- #define L1D1F1L3F3 \
- Rot9(ULF_U,ULB_B,DLF_D,ULF_F,ULB_U,DLF_L,ULF_L,ULB_L, \
- DLF_F); \
- Rot6(DRF_D,DRB_B,DRF_R,DRB_R,DRF_F,DRB_D); \
- Rot4(UL_U,LF_L,UL_L,LF_F); \
- Rot6(DR_D,DF_D,DB_B,DR_R,DF_F,DB_D); \
- M(L);M(D);M(F);M(l);M(f);
-
- /* F1;L3;F3; */
- #define F1L3F3 \
- Rot4(DLF_D,DRF_D,DLB_L,ULB_L); \
- Rot4(DLF_L,DRF_F,DLB_D,ULB_B); \
- Rot4(DLF_F,DRF_R,DLB_B,ULB_U); \
- Rot4(UL_U,DF_F,DL_D,LB_B); \
- Rot4(UL_L,DF_D,DL_L,LB_L); \
- M(F);M(l);M(f);
-
- /* D3;F1;L3;F3; */
- #define D3F1L3F3 \
- Rot5(DLF_D,DRB_D,DLB_D,ULB_B,DRF_F); \
- Rot5(DLF_L,DRB_R,DLB_B,ULB_U,DRF_R); \
- Rot5(DLF_F,DRB_B,DLB_L,ULB_L,DRF_D); \
- Rot10(UL_U,DR_R,DB_B,DL_L,LB_L,UL_L,DR_D,DB_D,DL_D,LB_B);\
- Rot2(DF_D,DF_F); \
- M(d);M(F);M(l);M(f);
-
- /* B3;L1;B1; */
- #define B3L1B1 \
- Rot4(ULF_U,DLB_B,DRB_R,DLF_F); \
- Rot4(ULF_L,DLB_D,DRB_D,DLF_L); \
- Rot4(ULF_F,DLB_L,DRB_B,DLF_D); \
- Rot4(UL_U,DB_B,DL_D,LF_F); \
- Rot4(UL_L,DB_D,DL_L,LF_L); \
- M(b);M(L);M(B);
-
- /* D1;F1;L3;F3; */
- #define D1F1L3F3 \
- Rot6(DRF_D,DRB_B,DRF_R,DRB_R,DRF_F,DRB_D); \
- Rot6(ULB_U,DLB_L,ULB_L,DLB_D,ULB_B,DLB_B); \
- Rot6(UL_U,DL_L,LB_L,UL_L,DL_D,LB_B); \
- Rot6(DR_D,DF_D,DB_B,DR_R,DF_F,DB_D); \
- M(D);M(F);M(l);M(f);
-
- /* D3;L2; */
- #define D3L2 \
- Rot6(ULF_U,DLF_D,ULB_U,DRF_D,DRB_D,DLB_D); \
- Rot6(ULF_L,DLF_F,ULB_B,DRF_R,DRB_B,DLB_L); \
- Rot6(ULF_F,DLF_L,ULB_L,DRF_F,DRB_R,DLB_B); \
- Rot5(UL_U,DF_D,DR_D,DB_D,DL_D); \
- Rot5(UL_L,DF_F,DR_R,DB_B,DL_L); \
- Rot2(LF_L,LB_L); \
- Rot2(LF_F,LB_B); \
- M(d);M(L);M(L);
-
- /* D2;L2; */
- #define D2L2 \
- Rot3(ULF_U,DRF_D,DLB_D); \
- Rot3(ULF_L,DRF_R,DLB_L); \
- Rot3(ULF_F,DRF_F,DLB_B); \
- Rot3(DLF_D,ULB_U,DRB_D); \
- Rot3(DLF_L,ULB_L,DRB_R); \
- Rot3(DLF_F,ULB_B,DRB_B); \
- Rot3(UL_U,DR_D,DL_D); \
- Rot3(UL_L,DR_R,DL_L); \
- Rot2(LF_L,LB_L); \
- Rot2(LF_F,LB_B); \
- Rot2(DF_D,DB_D); \
- Rot2(DF_F,DB_B); \
- M(D);M(D);M(L);M(L);
-
- /* D1;L2; */
- #define D1L2 \
- Rot6(ULF_U,DRB_D,DRF_D,DLF_D,ULB_U,DLB_D); \
- Rot6(ULF_L,DRB_B,DRF_R,DLF_F,ULB_B,DLB_L); \
- Rot6(ULF_F,DRB_R,DRF_F,DLF_L,ULB_L,DLB_B); \
- Rot5(UL_U,DB_D,DR_D,DF_D,DL_D); \
- Rot5(UL_L,DB_B,DR_R,DF_F,DL_L); \
- Rot2(LF_L,LB_L); \
- Rot2(LF_F,LB_B); \
- M(D);M(L);M(L);
-
- /* Middle layer transforms */
-
- /* D3;F1;D2;L1;D1;L3;D2;F3; */
- #define D3F1D2L1D1L3D2F3 \
- Rot3(DLF_D,DLB_D,DRF_R); \
- Rot3(DLF_L,DLB_B,DRF_D); \
- Rot3(DLF_F,DLB_L,DRF_F); \
- Rot4(RF_R,DF_D,RF_F,DF_F); \
- Rot4(DR_D,DB_D,DR_R,DB_B); \
- M(d);M(F);M(D);M(D);M(L);M(D);M(l);M(D);M(D);M(f);
-
- /* F1;D2;L1;D1;L3;D2;F3; */
- #define F1D2L1D1L3D2F3 \
- Rot4(DLF_D,DRB_D,DRF_D,DLB_B); \
- Rot4(DLF_L,DRB_R,DRF_F,DLB_L); \
- Rot4(DLF_F,DRB_B,DRF_R,DLB_D); \
- Rot4(RF_R,DL_D,DB_D,DF_F); \
- Rot4(RF_F,DL_L,DB_B,DF_D); \
- M(F);M(D);M(D);M(L);M(D);M(l);M(D);M(D);M(f);
-
- /* R1;D2;F1;D1;F3;D2;R3; */
- #define R1D2F1D1F3D2R3 \
- Rot4(DLF_D,DRF_R,DLB_L,DRB_B); \
- Rot4(DLF_L,DRF_D,DLB_D,DRB_D); \
- Rot4(DLF_F,DRF_F,DLB_B,DRB_R); \
- Rot4(RB_R,DF_F,DL_L,DR_D); \
- Rot4(RB_B,DF_D,DL_D,DR_R); \
- M(R);M(D);M(D);M(F);M(D);M(f);M(D);M(D);M(r);
-
- /* D1;R1;D2;F1;D1;F3;D2;R3; */
- #define D1R1D2F1D1F3D2R3 \
- Rot3(DLF_D,DLF_F,DLF_L); \
- Rot9(DRF_D,DRB_D,DLB_B,DRF_F,DRB_R,DLB_L,DRF_R,DRB_B, \
- DLB_D); \
- Rot5(RB_R,DL_L,DF_D,DB_D,DR_D); \
- Rot5(RB_B,DL_D,DF_F,DB_B,DR_R); \
- M(D);M(R);M(D);M(D);M(F);M(D);M(f);M(D);M(D);M(r);
-
- /* D1;B1;D2;R1;D1;R3;D2;B3; */
- #define D1B1D2R1D1R3D2B3 \
- Rot9(DLF_D,DRB_D,DLB_D,DLF_L,DRB_R,DLB_B,DLF_F,DRB_B, \
- DLB_L); \
- Rot3(DRF_D,DRF_R,DRF_F); \
- Rot5(LB_L,DF_D,DR_R,DL_L,DB_B); \
- Rot5(LB_B,DF_F,DR_D,DL_D,DB_D); \
- M(D);M(B);M(D);M(D);M(R);M(D);M(r);M(D);M(D);M(b);
-
- /* D2;B1;D2;R1;D1;R3;D2;B3; */
- #define D2B1D2R1D1R3D2B3 \
- Rot6(DLF_D,DRF_D,DLF_F,DRF_R,DLF_L,DRF_F); \
- Rot3(DLB_D,DLB_B,DLB_L); \
- Rot8(LB_L,DL_D,DR_D,DB_D,LB_B,DL_L,DR_R,DB_B); \
- Rot2(DF_D,DF_F); \
- M(D);M(D);M(B);M(D);M(D);M(R);M(D);M(r);M(D);M(D);M(b);
-
- /* D2;L1;D2;B1;D1;B3;D2;L3; */
- #define D2L1D2B1D1B3D2L3 \
- Rot3(DLF_D,DLF_L,DLF_F); \
- Rot6(DRF_D,DRB_D,DRF_R,DRB_B,DRF_F,DRB_R); \
- Rot8(LF_L,DF_F,DB_B,DL_L,LF_F,DF_D,DB_D,DL_D); \
- Rot2(DR_D,DR_R); \
- M(D);M(D);M(L);M(D);M(D);M(B);M(D);M(b);M(D);M(D);M(l);
-
- /* D3;L1;D2;B1;D1;B3;D2;L3; */
- #define D3L1D2B1D1B3D2L3 \
- Rot3(DLF_D,DLB_B,DRB_R); \
- Rot3(DLF_L,DLB_L,DRB_B); \
- Rot3(DLF_F,DLB_D,DRB_D); \
- Rot4(LF_L,DL_L,LF_F,DL_D); \
- Rot4(DR_D,DF_F,DR_R,DF_D); \
- M(d);M(L);M(D);M(D);M(B);M(D);M(b);M(D);M(D);M(l);
-
- /* D2;F1;D2;L1;D1;L3;D2;F3; */
- #define D2F1D2L1D1L3D2F3 \
- Rot3(DRF_D,DRF_F,DRF_R); \
- Rot6(DLB_D,DRB_B,DLB_L,DRB_R,DLB_B,DRB_D); \
- Rot8(RF_R,DR_D,DL_D,DF_D,RF_F,DR_R,DL_L,DF_F); \
- Rot2(DB_D,DB_B); \
- M(D);M(D);M(F);M(D);M(D);M(L);M(D);M(l);M(D);M(D);M(f);
-
- /* D3;F1;D2;L1;D3;L3;D2;F3; */
- #define D3F1D2L1D3L3D2F3 \
- Rot3(DLF_D,DLF_L,DLF_F); \
- Rot9(DRF_D,DLB_D,DRB_B,DRF_R,DLB_L,DRB_R,DRF_F,DLB_B, \
- DRB_D); \
- Rot5(RF_R,DR_R,DB_B,DF_F,DL_D); \
- Rot5(RF_F,DR_D,DB_D,DF_D,DL_L); \
- M(d);M(F);M(D);M(D);M(L);M(d);M(l);M(D);M(D);M(f);
-
- /* D3;R1;D2;F1;D1;F3;D2;R3; */
- #define D3R1D2F1D1F3D2R3 \
- Rot3(DLF_D,DRB_B,DRF_D); \
- Rot3(DLF_L,DRB_D,DRF_F); \
- Rot3(DLF_F,DRB_R,DRF_R); \
- Rot4(RB_R,DR_R,RB_B,DR_D); \
- Rot4(DL_D,DB_B,DL_L,DB_D); \
- M(d);M(R);M(D);M(D);M(F);M(D);M(f);M(D);M(D);M(r);
-
- /* R1;D2;F1;D3;F3;D2;R3; */
- #define R1D2F1D3F3D2R3 \
- Rot4(DLF_D,DRB_B,DLB_L,DRF_R); \
- Rot4(DLF_L,DRB_D,DLB_D,DRF_D); \
- Rot4(DLF_F,DRB_R,DLB_B,DRF_F); \
- Rot4(RB_R,DR_D,DL_L,DF_F); \
- Rot4(RB_B,DR_R,DL_D,DF_D); \
- M(R);M(D);M(D);M(F);M(d);M(f);M(D);M(D);M(r);
-
- /* B1;D2;R1;D1;R3;D2;B3; */
- #define B1D2R1D1R3D2B3 \
- Rot4(DLF_D,DLB_D,DRF_F,DRB_D); \
- Rot4(DLF_L,DLB_B,DRF_R,DRB_R); \
- Rot4(DLF_F,DLB_L,DRF_D,DRB_B); \
- Rot4(LB_L,DR_D,DF_D,DB_B); \
- Rot4(LB_B,DR_R,DF_F,DB_D); \
- M(B);M(D);M(D);M(R);M(D);M(r);M(D);M(D);M(b);
-
- /* D1;B1;D2;R1;D3;R3;D2;B3; */
- #define D1B1D2R1D3R3D2B3 \
- Rot3(DLF_D,DRF_D,DRB_B); \
- Rot3(DLF_L,DRF_F,DRB_D); \
- Rot3(DLF_F,DRF_R,DRB_R); \
- Rot4(LB_L,DR_R,LB_B,DR_D); \
- Rot4(DL_D,DB_D,DL_L,DB_B); \
- M(D);M(B);M(D);M(D);M(R);M(d);M(r);M(D);M(D);M(b);
-
- /* D1;L1;D2;B1;D1;B3;D2;L3; */
- #define D1L1D2B1D1B3D2L3 \
- Rot9(DLF_D,DRF_F,DLB_B,DLF_L,DRF_R,DLB_L,DLF_F,DRF_D, \
- DLB_D); \
- Rot3(DRB_D,DRB_B,DRB_R); \
- Rot5(LF_L,DR_R,DB_D,DF_D,DL_D); \
- Rot5(LF_F,DR_D,DB_B,DF_F,DL_L); \
- M(D);M(L);M(D);M(D);M(B);M(D);M(b);M(D);M(D);M(l);
-
- /* D2;L1;D2;B1;D3;B3;D2;L3; */
- #define D2L1D2B1D3B3D2L3 \
- Rot6(DLF_D,DLB_D,DLF_L,DLB_B,DLF_F,DLB_L); \
- Rot3(DRB_D,DRB_B,DRB_R); \
- Rot8(LF_L,DR_D,DF_D,DB_D,LF_F,DR_R,DF_F,DB_B); \
- Rot2(DL_D,DL_L); \
- M(D);M(D);M(L);M(D);M(D);M(B);M(d);M(b);M(D);M(D);M(l);
-
- /* D1;F1;D2;L1;D1;L3;D2;F3; */
- #define D1F1D2L1D1L3D2F3 \
- Rot9(DLF_D,DRF_D,DRB_R,DLF_L,DRF_F,DRB_B,DLF_F,DRF_R, \
- DRB_D); \
- Rot3(DLB_D,DLB_L,DLB_B); \
- Rot5(RF_R,DB_D,DL_L,DR_R,DF_F); \
- Rot5(RF_F,DB_B,DL_D,DR_D,DF_D); \
- M(D);M(F);M(D);M(D);M(L);M(D);M(l);M(D);M(D);M(f);
-
- /* D2;F1;D2;L1;D3;L3;D2;F3; */
- #define D2F1D2L1D3L3D2F3 \
- Rot6(DLF_D,DRF_F,DLF_L,DRF_R,DLF_F,DRF_D); \
- Rot3(DLB_D,DLB_L,DLB_B); \
- Rot8(RF_R,DB_B,DR_R,DL_L,RF_F,DB_D,DR_D,DL_D); \
- Rot2(DF_D,DF_F); \
- M(D);M(D);M(F);M(D);M(D);M(L);M(d);M(l);M(D);M(D);M(f);
-
- /* D2;R1;D2;F1;D1;F3;D2;R3; */
- #define D2R1D2F1D1F3D2R3 \
- Rot6(DLF_D,DLB_L,DLF_F,DLB_B,DLF_L,DLB_D); \
- Rot3(DRB_D,DRB_R,DRB_B); \
- Rot8(RB_R,DB_B,DF_F,DR_R,RB_B,DB_D,DF_D,DR_D); \
- Rot2(DL_D,DL_L); \
- M(D);M(D);M(R);M(D);M(D);M(F);M(D);M(f);M(D);M(D);M(r);
-
- /* D3;R1;D2;F1;D3;F3;D2;R3; */
- #define D3R1D2F1D3F3D2R3 \
- Rot9(DLF_D,DLB_L,DRB_B,DLF_F,DLB_B,DRB_R,DLF_L,DLB_D, \
- DRB_D); \
- Rot3(DRF_D,DRF_F,DRF_R); \
- Rot5(RB_R,DB_D,DL_D,DR_D,DF_F); \
- Rot5(RB_B,DB_B,DL_L,DR_R,DF_D); \
- M(d);M(R);M(D);M(D);M(F);M(d);M(f);M(D);M(D);M(r);
-
- /* D3;B1;D2;R1;D1;R3;D2;B3; */
- #define D3B1D2R1D1R3D2B3 \
- Rot3(DRF_D,DLB_L,DRB_D); \
- Rot3(DRF_R,DLB_B,DRB_B); \
- Rot3(DRF_F,DLB_D,DRB_R); \
- Rot4(LB_L,DB_D,LB_B,DB_B); \
- Rot4(DL_D,DF_D,DL_L,DF_F); \
- M(d);M(B);M(D);M(D);M(R);M(D);M(r);M(D);M(D);M(b);
-
- /* B1;D2;R1;D3;R3;D2;B3; */
- #define B1D2R1D3R3D2B3 \
- Rot4(DLF_D,DRB_D,DRF_F,DLB_D); \
- Rot4(DLF_L,DRB_R,DRF_R,DLB_B); \
- Rot4(DLF_F,DRB_B,DRF_D,DLB_L); \
- Rot4(LB_L,DB_B,DF_D,DR_D); \
- Rot4(LB_B,DB_D,DF_F,DR_R); \
- M(B);M(D);M(D);M(R);M(d);M(r);M(D);M(D);M(b);
-
- /* L1;D2;B1;D1;B3;D2;L3; */
- #define L1D2B1D1B3D2L3 \
- Rot4(DLF_D,DRB_R,DLB_D,DRF_D); \
- Rot4(DLF_L,DRB_B,DLB_B,DRF_F); \
- Rot4(DLF_F,DRB_D,DLB_L,DRF_R); \
- Rot4(LF_L,DB_B,DR_R,DL_D); \
- Rot4(LF_F,DB_D,DR_D,DL_L); \
- M(L);M(D);M(D);M(B);M(D);M(b);M(D);M(D);M(l);
-
- /* D1;L1;D2;B1;D3;B3;D2;L3; */
- #define D1L1D2B1D3B3D2L3 \
- Rot3(DRF_D,DRB_D,DLB_L); \
- Rot3(DRF_R,DRB_B,DLB_B); \
- Rot3(DRF_F,DRB_R,DLB_D); \
- Rot4(LF_L,DB_D,LF_F,DB_B); \
- Rot4(DL_D,DF_F,DL_L,DF_D); \
- M(D);M(L);M(D);M(D);M(B);M(d);M(b);M(D);M(D);M(l);
-
- /* F1;D2;L1;D1;L3;D2;F3; */
- #define F1D2L1D1L3D2F3 \
- Rot4(DLF_D,DRB_D,DRF_D,DLB_B); \
- Rot4(DLF_L,DRB_R,DRF_F,DLB_L); \
- Rot4(DLF_F,DRB_B,DRF_R,DLB_D); \
- Rot4(RF_R,DL_D,DB_D,DF_F); \
- Rot4(RF_F,DL_L,DB_B,DF_D); \
- M(F);M(D);M(D);M(L);M(D);M(l);M(D);M(D);M(f);
-
- /* D1;F1;D2;L1;D3;L3;D2;F3; */
- #define D1F1D2L1D3L3D2F3 \
- Rot3(DLF_D,DRB_R,DLB_B); \
- Rot3(DLF_L,DRB_B,DLB_L); \
- Rot3(DLF_F,DRB_D,DLB_D); \
- Rot4(RF_R,DL_L,RF_F,DL_D); \
- Rot4(DR_D,DF_D,DR_R,DF_F); \
- M(D);M(F);M(D);M(D);M(L);M(d);M(l);M(D);M(D);M(f);
-
- /* D1;R1;D2;F1;D1;F3;D2;R3; */
- #define D1R1D2F1D1F3D2R3 \
- Rot3(DLF_D,DLF_F,DLF_L); \
- Rot9(DRF_D,DRB_D,DLB_B,DRF_F,DRB_R,DLB_L,DRF_R,DRB_B, \
- DLB_D); \
- Rot5(RB_R,DL_L,DF_D,DB_D,DR_D); \
- Rot5(RB_B,DL_D,DF_F,DB_B,DR_R); \
- M(D);M(R);M(D);M(D);M(F);M(D);M(f);M(D);M(D);M(r);
-
- /* D2;R1;D2;F1;D3;F3;D2;R3; */
- #define D2R1D2F1D3F3D2R3 \
- Rot3(DLF_D,DLF_F,DLF_L); \
- Rot6(DRF_D,DRB_R,DRF_F,DRB_B,DRF_R,DRB_D); \
- Rot8(RB_R,DL_D,DB_D,DF_D,RB_B,DL_L,DB_B,DF_F); \
- Rot2(DR_D,DR_R); \
- M(D);M(D);M(R);M(D);M(D);M(F);M(d);M(f);M(D);M(D);M(r);
-
- /* D2;B1;D2;R1;D1;R3;D2;B3; */
- #define D2B1D2R1D1R3D2B3 \
- Rot6(DLF_D,DRF_D,DLF_F,DRF_R,DLF_L,DRF_F); \
- Rot3(DLB_D,DLB_B,DLB_L); \
- Rot8(LB_L,DL_D,DR_D,DB_D,LB_B,DL_L,DR_R,DB_B); \
- Rot2(DF_D,DF_F); \
- M(D);M(D);M(B);M(D);M(D);M(R);M(D);M(r);M(D);M(D);M(b);
-
- /* D3;B1;D2;R1;D3;R3;D2;B3; */
- #define D3B1D2R1D3R3D2B3 \
- Rot9(DLF_D,DLB_D,DRF_D,DLF_F,DLB_L,DRF_R,DLF_L,DLB_B, \
- DRF_F); \
- Rot3(DRB_D,DRB_R,DRB_B); \
- Rot5(LB_L,DL_L,DF_F,DB_B,DR_D); \
- Rot5(LB_B,DL_D,DF_D,DB_D,DR_R); \
- M(d);M(B);M(D);M(D);M(R);M(d);M(r);M(D);M(D);M(b);
-
- /* D3;L1;D2;B1;D1;B3;D2;L3; */
- #define D3L1D2B1D1B3D2L3 \
- Rot3(DLF_D,DLB_B,DRB_R); \
- Rot3(DLF_L,DLB_L,DRB_B); \
- Rot3(DLF_F,DLB_D,DRB_D); \
- Rot4(LF_L,DL_L,LF_F,DL_D); \
- Rot4(DR_D,DF_F,DR_R,DF_D); \
- M(d);M(L);M(D);M(D);M(B);M(D);M(b);M(D);M(D);M(l);
-
- /* L1;D2;B1;D3;B3;D2;L3; */
- #define L1D2B1D3B3D2L3 \
- Rot4(DLF_D,DRF_D,DLB_D,DRB_R); \
- Rot4(DLF_L,DRF_F,DLB_B,DRB_B); \
- Rot4(DLF_F,DRF_R,DLB_L,DRB_D); \
- Rot4(LF_L,DL_D,DR_R,DB_B); \
- Rot4(LF_F,DL_L,DR_D,DB_D); \
- M(L);M(D);M(D);M(B);M(d);M(b);M(D);M(D);M(l);
-
- /* F1;D2;L1;D1;L3;D2;F3; */
- #define F1D2L1D1L3D2F3 \
- Rot4(DLF_D,DRB_D,DRF_D,DLB_B); \
- Rot4(DLF_L,DRB_R,DRF_F,DLB_L); \
- Rot4(DLF_F,DRB_B,DRF_R,DLB_D); \
- Rot4(RF_R,DL_D,DB_D,DF_F); \
- Rot4(RF_F,DL_L,DB_B,DF_D); \
- M(F);M(D);M(D);M(L);M(D);M(l);M(D);M(D);M(f);
-
- /* R1;D2;F1;D1;F3;D2;R3; */
- #define R1D2F1D1F3D2R3 \
- Rot4(DLF_D,DRF_R,DLB_L,DRB_B); \
- Rot4(DLF_L,DRF_D,DLB_D,DRB_D); \
- Rot4(DLF_F,DRF_F,DLB_B,DRB_R); \
- Rot4(RB_R,DF_F,DL_L,DR_D); \
- Rot4(RB_B,DF_D,DL_D,DR_R); \
- M(R);M(D);M(D);M(F);M(D);M(f);M(D);M(D);M(r);
-
- /* B1;D2;R1;D1;R3;D2;B3; */
- #define B1D2R1D1R3D2B3 \
- Rot4(DLF_D,DLB_D,DRF_F,DRB_D); \
- Rot4(DLF_L,DLB_B,DRF_R,DRB_R); \
- Rot4(DLF_F,DLB_L,DRF_D,DRB_B); \
- Rot4(LB_L,DR_D,DF_D,DB_B); \
- Rot4(LB_B,DR_R,DF_F,DB_D); \
- M(B);M(D);M(D);M(R);M(D);M(r);M(D);M(D);M(b);
-
- /* L1;D2;B1;D1;B3;D2;L3; */
- #define L1D2B1D1B3D2L3 \
- Rot4(DLF_D,DRB_R,DLB_D,DRF_D); \
- Rot4(DLF_L,DRB_B,DLB_B,DRF_F); \
- Rot4(DLF_F,DRB_D,DLB_L,DRF_R); \
- Rot4(LF_L,DB_B,DR_R,DL_D); \
- Rot4(LF_F,DB_D,DR_D,DL_L); \
- M(L);M(D);M(D);M(B);M(D);M(b);M(D);M(D);M(l);
-
- /* Bottom Layer transforms */
-
-
- /* R1;D3;L3;D1;R3;D3;L1;D2; */
- #define R1D3L3D1R3D3L1D2 \
- Rot6(DLF_D,DLB_D,DLF_F,DLB_L,DLF_L,DLB_B); \
- Rot3(DRF_D,DRF_R,DRF_F); \
- Rot3(DRB_D,DRB_B,DRB_R); \
- Rot4(DL_D,DB_D,DR_D,DF_D); \
- Rot4(DL_L,DB_B,DR_R,DF_F); \
- M(R);M(d);M(l);M(D);M(r);M(d);M(L);M(D);M(D);
-
- /* D1;B1;D1;R1;D3;R3;B3; */
- #define D1B1D1R1D3R3B3 \
- Rot3(DLF_D,DLF_F,DLF_L); \
- Rot6(DRF_D,DLB_D,DRF_F,DLB_B,DRF_R,DLB_L); \
- Rot4(DL_D,DB_D,DF_F,DR_D); \
- Rot4(DL_L,DB_B,DF_D,DR_R); \
- M(D);M(B);M(D);M(R);M(d);M(r);M(b);
-
- /* B1;D3;F3;D1;B3;D3;F1;D2; */
- #define B1D3F3D1B3D3F1D2 \
- Rot6(DLF_D,DRF_R,DLF_F,DRF_F,DLF_L,DRF_D); \
- Rot3(DLB_D,DLB_L,DLB_B); \
- Rot3(DRB_D,DRB_B,DRB_R); \
- Rot4(DL_D,DB_D,DR_D,DF_D); \
- Rot4(DL_L,DB_B,DR_R,DF_F); \
- M(B);M(d);M(f);M(D);M(b);M(d);M(F);M(D);M(D);
-
- /* L3;D1;R1;D3;L1;D1;R3;D3; */
- #define L3D1R1D3L1D1R3D3 \
- Rot3(DLF_D,DLB_B,DRF_R); \
- Rot3(DLF_L,DLB_L,DRF_D); \
- Rot3(DLF_F,DLB_D,DRF_F); \
- M(l);M(D);M(R);M(d);M(L);M(D);M(r);M(d);
-
- /* D1;R1;D3;L3;D1;R3;D3;L1; */
- #define D1R1D3L3D1R3D3L1 \
- Rot3(DLF_D,DRF_R,DLB_B); \
- Rot3(DLF_L,DRF_D,DLB_L); \
- Rot3(DLF_F,DRF_F,DLB_D); \
- M(D);M(R);M(d);M(l);M(D);M(r);M(d);M(L);
-
- /* B2;D1;R3;L1;B2;R1;L3;D1;B2; */
- #define B2D1R3L1B2R1L3D1B2 \
- Rot3(DL_D,DB_D,DR_D); \
- Rot3(DL_L,DB_B,DR_R); \
- M(B);M(B);M(D);M(r);M(L);M(B);M(B);M(R);M(l);M(D); \
- M(B);M(B);
-
- /* B2;D3;R3;L1;B2;R1;L3;D3;B2; */
- #define B2D3R3L1B2R1L3D3B2 \
- Rot3(DL_D,DR_D,DB_D); \
- Rot3(DL_L,DR_R,DB_B); \
- M(B);M(B);M(d);M(r);M(L);M(B);M(B);M(R);M(l);M(d); \
- M(B);M(B);
-
- /* R2;D1;F3;B1;R2;F1;B3;D1;R2; */
- #define R2D1F3B1R2F1B3D1R2 \
- Rot3(DR_D,DF_D,DB_D); \
- Rot3(DR_R,DF_F,DB_B); \
- M(R);M(R);M(D);M(f);M(B);M(R);M(R);M(F);M(b);M(D); \
- M(R);M(R);
-
- /* R2;D3;F3;B1;R2;F1;B3;D3;R2; */
- #define R2D3F3B1R2F1B3D3R2 \
- Rot3(DR_D,DB_D,DF_D); \
- Rot3(DR_R,DB_B,DF_F); \
- M(R);M(R);M(d);M(f);M(B);M(R);M(R);M(F);M(b);M(d); \
- M(R);M(R);
-
- /* L2;D1;B3;F1;L2;B1;F3;D1;L2; */
- #define L2D1B3F1L2B1F3D1L2 \
- Rot3(DL_D,DB_D,DF_D); \
- Rot3(DL_L,DB_B,DF_F); \
- M(L);M(L);M(D);M(b);M(F);M(L);M(L);M(B);M(f);M(D); \
- M(L);M(L);
-
- /* L2;D3;B3;F1;L2;B1;F3;D3;L2; */
- #define L2D3B3F1L2B1F3D3L2 \
- Rot3(DL_D,DF_D,DB_D); \
- Rot3(DL_L,DF_F,DB_B); \
- M(L);M(L);M(d);M(b);M(F);M(L);M(L);M(B);M(f);M(d); \
- M(L);M(L);
-
- /* F2;D1;L3;R1;F2;L1;R3;D1;F2; */
- #define F2D1L3R1F2L1R3D1F2 \
- Rot3(DL_D,DR_D,DF_D); \
- Rot3(DL_L,DR_R,DF_F); \
- M(F);M(F);M(D);M(l);M(R);M(F);M(F);M(L);M(r);M(D); \
- M(F);M(F);
-
- /* F2;D3;L3;R1;F2;L1;R3;D3;F2; */
- #define F2D3L3R1F2L1R3D3F2 \
- Rot3(DL_D,DF_D,DR_D); \
- Rot3(DL_L,DF_F,DR_R); \
- M(F);M(F);M(d);M(l);M(R);M(F);M(F);M(L);M(r);M(d); \
- M(F);M(F);
-
- /* F1;L1;D1;L3;D3;F2;R3;D3;R1;D1;F1; */
- #define F1L1D1L3D3F2R3D3R1D1F1 \
- Rot2(DL_D,DF_F); \
- Rot2(DL_L,DF_D); \
- Rot2(DR_D,DB_D); \
- Rot2(DR_R,DB_B); \
- M(F);M(L);M(D);M(l);M(d);M(F);M(F);M(r);M(d);M(R); \
- M(D);M(F);
-
- /* R2;L2;U1;R2;L2;D2;R2;L2;U1;R2;L2; */
- #define R2L2U1R2L2D2R2L2U1R2L2 \
- Rot2(DL_D,DR_D); \
- Rot2(DL_L,DR_R); \
- Rot2(DF_D,DB_D); \
- Rot2(DF_F,DB_B); \
- M(R);M(R);M(L);M(L);M(U);M(R);M(R);M(L);M(L);M(D); \
- M(D);M(R);M(R);M(L);M(L);M(U);M(R);M(R);M(L);M(L);
-
- /* R1;F1;D1;F3;D3;R2;B3;D3;B1;D1;R1; */
- #define R1F1D1F3D3R2B3D3B1D1R1 \
- Rot2(DL_D,DB_D); \
- Rot2(DL_L,DB_B); \
- Rot2(DR_D,DF_F); \
- Rot2(DR_R,DF_D); \
- M(R);M(F);M(D);M(f);M(d);M(R);M(R);M(b);M(d);M(B); \
- M(D);M(R);
-
- /* Corner Twist transforms */
-
-
- /* L3;U1;L1;F1;U1;F3; */
- #define L3U1L1F1U1F3 \
- Rot3(ULF_U,ULF_L,ULF_F); \
- Rot3(DLF_D,DLF_F,DLF_L); \
- Rot9(URF_U,URB_U,ULB_U,URF_F,URB_R,ULB_B,URF_R,URB_B, \
- ULB_L); \
- Rot5(UL_U,UF_F,UR_R,LF_L,UB_U); \
- Rot5(UL_L,UF_U,UR_U,LF_F,UB_B); \
- M(l);M(U);M(L);M(F);M(U);M(f);
-
- /* D1;F1;U3;F3;L3;U3;L1;D3; */
- #define D1F1U3F3L3U3L1D3 \
- Rot3(ULF_U,ULF_F,ULF_L); \
- Rot9(URF_U,ULB_L,URB_B,URF_R,ULB_B,URB_R,URF_F,ULB_U, \
- URB_U); \
- Rot3(DLB_D,DLB_B,DLB_L); \
- Rot5(UL_U,UB_U,LF_L,UR_R,UF_F); \
- Rot5(UL_L,UB_B,LF_F,UR_U,UF_U); \
- M(D);M(F);M(u);M(f);M(l);M(u);M(L);M(d);
-
- /* D2;F1;U3;F3;L3;U3;L1;D2; */
- #define D2F1U3F3L3U3L1D2 \
- Rot3(ULF_U,ULF_F,ULF_L); \
- Rot9(URF_U,ULB_L,URB_B,URF_R,ULB_B,URB_R,URF_F,ULB_U, \
- URB_U); \
- Rot3(DRB_D,DRB_R,DRB_B); \
- Rot5(UL_U,UB_U,LF_L,UR_R,UF_F); \
- Rot5(UL_L,UB_B,LF_F,UR_U,UF_U); \
- M(D);M(D);M(F);M(u);M(f);M(l);M(u);M(L);M(D);M(D);
-
- /* D3;F1;U3;F3;L3;U3;L1;D1; */
- #define D3F1U3F3L3U3L1D1 \
- Rot3(ULF_U,ULF_F,ULF_L); \
- Rot9(URF_U,ULB_L,URB_B,URF_R,ULB_B,URB_R,URF_F,ULB_U, \
- URB_U); \
- Rot3(DRF_D,DRF_F,DRF_R); \
- Rot5(UL_U,UB_U,LF_L,UR_R,UF_F); \
- Rot5(UL_L,UB_B,LF_F,UR_U,UF_U); \
- M(d);M(F);M(u);M(f);M(l);M(u);M(L);M(D);
-
- /* D1;F1;U3;F3;L3;U3;L1;D3; */
- #define D1F1U3F3L3U3L1D3 \
- Rot3(ULF_U,ULF_F,ULF_L); \
- Rot9(URF_U,ULB_L,URB_B,URF_R,ULB_B,URB_R,URF_F,ULB_U, \
- URB_U); \
- Rot3(DLB_D,DLB_B,DLB_L); \
- Rot5(UL_U,UB_U,LF_L,UR_R,UF_F); \
- Rot5(UL_L,UB_B,LF_F,UR_U,UF_U); \
- M(D);M(F);M(u);M(f);M(l);M(u);M(L);M(d);
-
- /* D3;F1;U3;F3;L3;U3;L1;D1; */
- #define D3F1U3F3L3U3L1D1 \
- Rot3(ULF_U,ULF_F,ULF_L); \
- Rot9(URF_U,ULB_L,URB_B,URF_R,ULB_B,URB_R,URF_F,ULB_U, \
- URB_U); \
- Rot3(DRF_D,DRF_F,DRF_R); \
- Rot5(UL_U,UB_U,LF_L,UR_R,UF_F); \
- Rot5(UL_L,UB_B,LF_F,UR_U,UF_U); \
- M(d);M(F);M(u);M(f);M(l);M(u);M(L);M(D);
-
- /* F3;U1;F1;R1;U1;R3; */
- #define F3U1F1R1U1R3 \
- Rot9(ULF_U,URB_R,ULB_B,ULF_L,URB_B,ULB_L,ULF_F,URB_U, \
- ULB_U); \
- Rot3(URF_U,URF_F,URF_R); \
- Rot3(DRF_D,DRF_R,DRF_F); \
- Rot5(UL_U,UF_U,UR_R,UB_B,RF_F); \
- Rot5(UL_L,UF_F,UR_U,UB_U,RF_R); \
- M(f);M(U);M(F);M(R);M(U);M(r);
-
- /* D1;R1;U3;R3;F3;U3;F1;D3; */
- #define D1R1U3R3F3U3F1D3 \
- Rot9(ULF_U,ULB_U,URB_U,ULF_F,ULB_L,URB_B,ULF_L,ULB_B, \
- URB_R); \
- Rot3(DLF_D,DLF_L,DLF_F); \
- Rot3(URF_U,URF_R,URF_F); \
- Rot5(UL_U,RF_F,UB_B,UR_R,UF_U); \
- Rot5(UL_L,RF_R,UB_U,UR_U,UF_F); \
- M(D);M(R);M(u);M(r);M(f);M(u);M(F);M(d);
-
- /* D2;R1;U3;R3;F3;U3;F1;D2; */
- #define D2R1U3R3F3U3F1D2 \
- Rot9(ULF_U,ULB_U,URB_U,ULF_F,ULB_L,URB_B,ULF_L,ULB_B, \
- URB_R); \
- Rot3(URF_U,URF_R,URF_F); \
- Rot3(DLB_D,DLB_B,DLB_L); \
- Rot5(UL_U,RF_F,UB_B,UR_R,UF_U); \
- Rot5(UL_L,RF_R,UB_U,UR_U,UF_F); \
- M(D);M(D);M(R);M(u);M(r);M(f);M(u);M(F);M(D);M(D);
-
- /* D3;R1;U3;R3;F3;U3;F1;D1; */
- #define D3R1U3R3F3U3F1D1 \
- Rot9(ULF_U,ULB_U,URB_U,ULF_F,ULB_L,URB_B,ULF_L,ULB_B, \
- URB_R); \
- Rot3(URF_U,URF_R,URF_F); \
- Rot3(DRB_D,DRB_R,DRB_B); \
- Rot5(UL_U,RF_F,UB_B,UR_R,UF_U); \
- Rot5(UL_L,RF_R,UB_U,UR_U,UF_F); \
- M(d);M(R);M(u);M(r);M(f);M(u);M(F);M(D);
-
- /* D1;R1;U3;R3;F3;U3;F1;D3; */
- #define D1R1U3R3F3U3F1D3 \
- Rot9(ULF_U,ULB_U,URB_U,ULF_F,ULB_L,URB_B,ULF_L,ULB_B, \
- URB_R); \
- Rot3(DLF_D,DLF_L,DLF_F); \
- Rot3(URF_U,URF_R,URF_F); \
- Rot5(UL_U,RF_F,UB_B,UR_R,UF_U); \
- Rot5(UL_L,RF_R,UB_U,UR_U,UF_F); \
- M(D);M(R);M(u);M(r);M(f);M(u);M(F);M(d);
-
- /* D3;R1;U3;R3;F3;U3;F1;D1; */
- #define D3R1U3R3F3U3F1D1 \
- Rot9(ULF_U,ULB_U,URB_U,ULF_F,ULB_L,URB_B,ULF_L,ULB_B, \
- URB_R); \
- Rot3(URF_U,URF_R,URF_F); \
- Rot3(DRB_D,DRB_R,DRB_B); \
- Rot5(UL_U,RF_F,UB_B,UR_R,UF_U); \
- Rot5(UL_L,RF_R,UB_U,UR_U,UF_F); \
- M(d);M(R);M(u);M(r);M(f);M(u);M(F);M(D);
-
- /* R3;U1;R1;B1;U1;B3; */
- #define R3U1R1B1U1B3 \
- Rot9(ULF_U,URF_U,ULB_B,ULF_L,URF_F,ULB_L,ULF_F,URF_R, \
- ULB_U); \
- Rot3(URB_U,URB_R,URB_B); \
- Rot3(DRB_D,DRB_B,DRB_R); \
- Rot5(UL_U,RB_B,UF_F,UR_R,UB_U); \
- Rot5(UL_L,RB_R,UF_U,UR_U,UB_B); \
- M(r);M(U);M(R);M(B);M(U);M(b);
-
- /* D1;B1;U3;B3;R3;U3;R1;D3; */
- #define D1B1U3B3R3U3R1D3 \
- Rot9(ULF_U,ULB_U,URF_R,ULF_F,ULB_L,URF_F,ULF_L,ULB_B, \
- URF_U); \
- Rot3(DRF_D,DRF_F,DRF_R); \
- Rot3(URB_U,URB_B,URB_R); \
- Rot5(UL_U,UB_U,UR_R,UF_F,RB_B); \
- Rot5(UL_L,UB_B,UR_U,UF_U,RB_R); \
- M(D);M(B);M(u);M(b);M(r);M(u);M(R);M(d);
-
- /* D2;B1;U3;B3;R3;U3;R1;D2; */
- #define D2B1U3B3R3U3R1D2 \
- Rot9(ULF_U,ULB_U,URF_R,ULF_F,ULB_L,URF_F,ULF_L,ULB_B, \
- URF_U); \
- Rot3(DLF_D,DLF_L,DLF_F); \
- Rot3(URB_U,URB_B,URB_R); \
- Rot5(UL_U,UB_U,UR_R,UF_F,RB_B); \
- Rot5(UL_L,UB_B,UR_U,UF_U,RB_R); \
- M(D);M(D);M(B);M(u);M(b);M(r);M(u);M(R);M(D);M(D);
-
- /* D3;B1;U3;B3;R3;U3;R1;D1; */
- #define D3B1U3B3R3U3R1D1 \
- Rot9(ULF_U,ULB_U,URF_R,ULF_F,ULB_L,URF_F,ULF_L,ULB_B, \
- URF_U); \
- Rot3(DLB_D,DLB_B,DLB_L); \
- Rot3(URB_U,URB_B,URB_R); \
- Rot5(UL_U,UB_U,UR_R,UF_F,RB_B); \
- Rot5(UL_L,UB_B,UR_U,UF_U,RB_R); \
- M(d);M(B);M(u);M(b);M(r);M(u);M(R);M(D);
-
- /* D1;B1;U3;B3;R3;U3;R1;D3; */
- #define D1B1U3B3R3U3R1D3 \
- Rot9(ULF_U,ULB_U,URF_R,ULF_F,ULB_L,URF_F,ULF_L,ULB_B, \
- URF_U); \
- Rot3(DRF_D,DRF_F,DRF_R); \
- Rot3(URB_U,URB_B,URB_R); \
- Rot5(UL_U,UB_U,UR_R,UF_F,RB_B); \
- Rot5(UL_L,UB_B,UR_U,UF_U,RB_R); \
- M(D);M(B);M(u);M(b);M(r);M(u);M(R);M(d);
-
- /* D3;B1;U3;B3;R3;U3;R1;D1; */
- #define D3B1U3B3R3U3R1D1 \
- Rot9(ULF_U,ULB_U,URF_R,ULF_F,ULB_L,URF_F,ULF_L,ULB_B, \
- URF_U); \
- Rot3(DLB_D,DLB_B,DLB_L); \
- Rot3(URB_U,URB_B,URB_R); \
- Rot5(UL_U,UB_U,UR_R,UF_F,RB_B); \
- Rot5(UL_L,UB_B,UR_U,UF_U,RB_R); \
- M(d);M(B);M(u);M(b);M(r);M(u);M(R);M(D);
-
- /* B3;U1;B1;L1;U1;L3; */
- #define B3U1B1L1U1L3 \
- Rot9(ULF_U,URF_U,URB_U,ULF_L,URF_F,URB_R,ULF_F,URF_R, \
- URB_B); \
- Rot3(ULB_U,ULB_B,ULB_L); \
- Rot3(DLB_D,DLB_L,DLB_B); \
- Rot5(UL_U,UF_U,LB_L,UR_R,UB_B); \
- Rot5(UL_L,UF_F,LB_B,UR_U,UB_U); \
- M(b);M(U);M(B);M(L);M(U);M(l);
-
- /* D1;L1;U3;L3;B3;U3;B1;D3; */
- #define D1L1U3L3B3U3B1D3 \
- Rot9(ULF_U,URB_B,URF_R,ULF_F,URB_R,URF_F,ULF_L,URB_U, \
- URF_U); \
- Rot3(ULB_U,ULB_L,ULB_B); \
- Rot3(DRB_D,DRB_R,DRB_B); \
- Rot5(UL_U,UB_B,UR_R,LB_L,UF_U); \
- Rot5(UL_L,UB_U,UR_U,LB_B,UF_F); \
- M(D);M(L);M(u);M(l);M(b);M(u);M(B);M(d);
-
-
- /* D2;L1;U3;L3;B3;U3;B1;D2; */
- #define D2L1U3L3B3U3B1D2 \
- Rot9(ULF_U,URB_B,URF_R,ULF_F,URB_R,URF_F,ULF_L,URB_U, \
- URF_U); \
- Rot3(DRF_D,DRF_F,DRF_R); \
- Rot3(ULB_U,ULB_L,ULB_B); \
- Rot5(UL_U,UB_B,UR_R,LB_L,UF_U); \
- Rot5(UL_L,UB_U,UR_U,LB_B,UF_F); \
- M(D);M(D);M(L);M(u);M(l);M(b);M(u);M(B);M(D);M(D);
-
- /* D3;L1;U3;L3;B3;U3;B1;D1; */
- #define D3L1U3L3B3U3B1D1 \
- Rot9(ULF_U,URB_B,URF_R,ULF_F,URB_R,URF_F,ULF_L,URB_U, \
- URF_U); \
- Rot3(DLF_D,DLF_L,DLF_F); \
- Rot3(ULB_U,ULB_L,ULB_B); \
- Rot5(UL_U,UB_B,UR_R,LB_L,UF_U); \
- Rot5(UL_L,UB_U,UR_U,LB_B,UF_F); \
- M(d);M(L);M(u);M(l);M(b);M(u);M(B);M(D);
-
- /* D1;L1;U3;L3;B3;U3;B1;D3; */
- #define D1L1U3L3B3U3B1D3 \
- Rot9(ULF_U,URB_B,URF_R,ULF_F,URB_R,URF_F,ULF_L,URB_U, \
- URF_U); \
- Rot3(ULB_U,ULB_L,ULB_B); \
- Rot3(DRB_D,DRB_R,DRB_B); \
- Rot5(UL_U,UB_B,UR_R,LB_L,UF_U); \
- Rot5(UL_L,UB_U,UR_U,LB_B,UF_F); \
- M(D);M(L);M(u);M(l);M(b);M(u);M(B);M(d);
-
- /* D3;L1;U3;L3;B3;U3;B1;D1; */
- #define D3L1U3L3B3U3B1D1 \
- Rot9(ULF_U,URB_B,URF_R,ULF_F,URB_R,URF_F,ULF_L,URB_U, \
- URF_U); \
- Rot3(DLF_D,DLF_L,DLF_F); \
- Rot3(ULB_U,ULB_L,ULB_B); \
- Rot5(UL_U,UB_B,UR_R,LB_L,UF_U); \
- Rot5(UL_L,UB_U,UR_U,LB_B,UF_F); \
- M(d);M(L);M(u);M(l);M(b);M(u);M(B);M(D);
-
- /* L3;U1;L1;F1;U1;F3;D1;F1;U3;F3;L3;U3;L1;D3; */
- #define L3U1L1F1U1F3D1F1U3F3L3U3L1D3 \
- Rot3(DLF_D,DLF_F,DLF_L); \
- Rot3(DLB_D,DLB_B,DLB_L); \
- M(l);M(U);M(L);M(F);M(U);M(f);M(D);M(F);M(u);M(f); \
- M(l);M(u);M(L);M(d);
-
- /* F3;U1;F1;R1;U1;R3;D1;R1;U3;R3;F3;U3;F1;D3; */
- #define F3U1F1R1U1R3D1R1U3R3F3U3F1D3 \
- Rot3(DLF_D,DLF_L,DLF_F); \
- Rot3(DRF_D,DRF_R,DRF_F); \
- M(f);M(U);M(F);M(R);M(U);M(r);M(D);M(R);M(u);M(r); \
- M(f);M(u);M(F);M(d);
-
- /* Edge exchanges */
-
-
- /* F1;D1;U3;R2;D2;U2;L1;D1;L3;U2;D2;R2;U1;D3;F3;D3; */
- #define F1D1U3R2D2U2L1D1L3U2D2R2U1D3F3D3 \
- Rot2(DL_D,DL_L); \
- Rot2(DF_D,DF_F); \
- M(F);M(D);M(u);M(R);M(R);M(D);M(D);M(U);M(U);M(L); \
- M(D);M(l);M(U);M(U);M(D);M(D);M(R);M(R);M(U);M(d); \
- M(f);M(d);
-
- /* F1;D1;U3;R2;D2;U2;L1;D2;L3;U2;D2;R2;U1;D3;F3;D2; */
- #define F1D1U3R2D2U2L1D2L3U2D2R2U1D3F3D2 \
- Rot2(DF_D,DF_F); \
- Rot2(DB_D,DB_B); \
- M(F);M(D);M(u);M(R);M(R);M(D);M(D);M(U);M(U);M(L); \
- M(D);M(D);M(l);M(U);M(U);M(D);M(D);M(R);M(R);M(U); \
- M(d);M(f);M(D);M(D);
-
- /* F1;D1;U3;R2;D2;U2;L1;D3;L3;U2;D2;R2;U1;D3;F3;D1; */
- #define F1D1U3R2D2U2L1D3L3U2D2R2U1D3F3D1 \
- Rot2(DR_D,DR_R); \
- Rot2(DF_D,DF_F); \
- M(F);M(D);M(u);M(R);M(R);M(D);M(D);M(U);M(U);M(L); \
- M(d);M(l);M(U);M(U);M(D);M(D);M(R);M(R);M(U);M(d); \
- M(f);M(D);
-
- /* R1;D1;U3;B2;D2;U2;F1;D1;F3;U2;D2;B2;U1;D3;R3;D3; */
- #define R1D1U3B2D2U2F1D1F3U2D2B2U1D3R3D3 \
- Rot2(DR_D,DR_R); \
- Rot2(DF_D,DF_F); \
- M(R);M(D);M(u);M(B);M(B);M(D);M(D);M(U);M(U);M(F); \
- M(D);M(f);M(U);M(U);M(D);M(D);M(B);M(B);M(U);M(d); \
- M(r);M(d);
-
- /* R1;D1;U3;B2;D2;U2;F1;D2;F3;U2;D2;B2;U1;D3;R3;D2; */
- #define R1D1U3B2D2U2F1D2F3U2D2B2U1D3R3D2 \
- Rot2(DL_D,DL_L); \
- Rot2(DR_D,DR_R); \
- M(R);M(D);M(u);M(B);M(B);M(D);M(D);M(U);M(U);M(F); \
- M(D);M(D);M(f);M(U);M(U);M(D);M(D);M(B);M(B);M(U); \
- M(d);M(r);M(D);M(D);
-
- /* R1;D1;U3;B2;D2;U2;F1;D3;F3;U2;D2;B2;U1;D3;R3;D1; */
- #define R1D1U3B2D2U2F1D3F3U2D2B2U1D3R3D1 \
- Rot2(DR_D,DR_R); \
- Rot2(DB_D,DB_B); \
- M(R);M(D);M(u);M(B);M(B);M(D);M(D);M(U);M(U);M(F); \
- M(d);M(f);M(U);M(U);M(D);M(D);M(B);M(B);M(U);M(d); \
- M(r);M(D);
-
- /* B1;D1;U3;L2;D2;U2;R1;D1;R3;U2;D2;L2;U1;D3;B3;D3; */
- #define B1D1U3L2D2U2R1D1R3U2D2L2U1D3B3D3 \
- Rot2(DR_D,DR_R); \
- Rot2(DB_D,DB_B); \
- M(B);M(D);M(u);M(L);M(L);M(D);M(D);M(U);M(U);M(R); \
- M(D);M(r);M(U);M(U);M(D);M(D);M(L);M(L);M(U);M(d); \
- M(b);M(d);
-
- /* B1;D1;U3;L2;D2;U2;R1;D2;R3;U2;D2;L2;U1;D3;B3;D2; */
- #define B1D1U3L2D2U2R1D2R3U2D2L2U1D3B3D2 \
- Rot2(DF_D,DF_F); \
- Rot2(DB_D,DB_B); \
- M(B);M(D);M(u);M(L);M(L);M(D);M(D);M(U);M(U);M(R); \
- M(D);M(D);M(r);M(U);M(U);M(D);M(D);M(L);M(L);M(U); \
- M(d);M(b);M(D);M(D);
-
- /* B1;D1;U3;L2;D2;U2;R1;D3;R3;U2;D2;L2;U1;D3;B3;D1 */
- #define B1D1U3L2D2U2R1D3R3U2D2L2U1D3B3D1 \
- Rot2(DL_D,DL_L); \
- Rot2(DB_D,DB_B); \
- M(B);M(D);M(u);M(L);M(L);M(D);M(D);M(U);M(U);M(R); \
- M(d);M(r);M(U);M(U);M(D);M(D);M(L);M(L);M(U);M(d); \
- M(b);M(D);
-
- /* L1;D1;U3;F2;D2;U2;B1;D1;B3;U2;D2;F2;U1;D3;L3;D3; */
- #define L1D1U3F2D2U2B1D1B3U2D2F2U1D3L3D3 \
- Rot2(DL_D,DL_L); \
- Rot2(DB_D,DB_B); \
- M(L);M(D);M(u);M(F);M(F);M(D);M(D);M(U);M(U);M(B); \
- M(D);M(b);M(U);M(U);M(D);M(D);M(F);M(F);M(U);M(d); \
- M(l);M(d);
-
- /* L1;D1;U3;F2;D2;U2;B1;D2;B3;U2;D2;F2;U1;D3;L3;D2; */
- #define L1D1U3F2D2U2B1D2B3U2D2F2U1D3L3D2 \
- Rot2(DL_D,DL_L); \
- Rot2(DR_D,DR_R); \
- M(L);M(D);M(u);M(F);M(F);M(D);M(D);M(U);M(U);M(B); \
- M(D);M(D);M(b);M(U);M(U);M(D);M(D);M(F);M(F);M(U); \
- M(d);M(l);M(D);M(D);
-
- /* L1;D1;U3;F2;D2;U2;B1;D3;B3;U2;D2;F2;U1;D3;L3;D1; */
- #define L1D1U3F2D2U2B1D3B3U2D2F2U1D3L3D1 \
- Rot2(DL_D,DL_L); \
- Rot2(DF_D,DF_F); \
- M(L);M(D);M(u);M(F);M(F);M(D);M(D);M(U);M(U);M(B); \
- M(d);M(b);M(U);M(U);M(D);M(D);M(F);M(F);M(U);M(d); \
- M(l);M(D);
-
-